javascript - NextJS 无法使用使用 SASS 和 CSS 的库
问题描述
我正在尝试在我的 NextJS 项目中添加 wix-style-react 插件,但我无法构建。在他们的文档中,他们说他们使用 Stylable、SASS 和 CSS 模块。
当我安装插件并构建时,我收到以下错误:
模块解析失败:意外字符 '@' (1:0) 您可能需要适当的加载程序来处理此文件类型,目前没有配置加载程序来处理此文件。见https://webpack.js.org/concepts#loaders @import '../common';
我尝试了以下两种方法:
- 在我的内部使用 next-sass
next.config.js
// next.config.js
const withSass = require('@zeit/next-sass')
module.exports = withSass({
cssModules: true
})
这样我收到另一个错误警告我关于 .css 文件
模块解析失败:意外令牌 (1:0) 您可能需要适当的加载器来处理此文件类型,目前没有配置加载器来处理此文件。请参阅https://webpack.js.org/concepts#loaders .root { | 显示:内联块;| 文本溢出:省略号;
- 将 next-css 与 next-sass 结合使用
// next.config.js
const withSass = require('@zeit/next-sass')
const withCss = require('@zeit/next-css')
module.exports = withCss(
withSass({
cssModules: true,
})
)
使用此配置,我再次遇到与没有配置相同的错误。我试图按照这个来配置我的 webpack。但我有一个错误StylableWebpackPlugin is not a constructor
重现
- 创建一个新的空白项目
create-next-app
- 安装模块
yarn add wix-style-react
- 建造
yarn build
系统信息
- 操作系统:macOS
- Next.js 版本:9.1.4
解决方案
配置
const withCSS = require('@zeit/next-css');
const withSass = require('@zeit/next-sass');
module.exports = withCSS({
webpack: function(config) {
config.module.rules.push({
test: /\.(eot|woff|woff2|ttf|svg|png|jpg|gif)$/,
use: {
loader: "url-loader",
options: {
limit: 100000
// name: '[name].[ext]'
}
}
});
return config;
},
...withSass({
cssModules: true,
webpack: function(config) {
config.module.rules.push({
test: /\.(eot|woff|woff2|ttf|svg|png|jpg|gif)$/,
use: {
loader: "url-loader",
options: {
limit: 100000
// name: '[name].[ext]'
}
}
});
return config;
}
}),
cssModules: false
});
推荐阅读
- symfony - 在匹配 2.2 的版本中找不到包 api-platform/api-pack
- database - 在文本输入中获取的值需要作为参数传递以插入数据库
- jenkins - 如何从 Jenkins 的多分支管道中提取分支名称?
- python - 从子类中调用从父类继承的类方法
- python - 使用 R 和 Python 的自动 arima
- python - 为什么启动请求不呈现
- php - 如何一起勾勒标签和内容
- seo - robots.txt 阻止除灯塔之外的所有内容
- jenkins - Artifactory 中的 conan 包 buildInfo 缺少元数据
- github - Github 操作在作业之间共享工作区/工件?