Rey*_*lds 7 javascript reactjs webpack css-modules next.js
我需要配置next.config.js文件,以便同时使用两个不同的加载程序。这是第一个:
const withSass = require('@zeit/next-sass');
module.exports = withSass({
cssModules: true,
cssLoaderOptions: {
importLoaders: 1,
localIdentName: "[local]___[hash:base64:5]",
}
})
Run Code Online (Sandbox Code Playgroud)
这是第二个:
const withSass = require('@zeit/next-sass');
const withCSS = require('@zeit/next-css');
module.exports = withCSS(withSass({
webpack (config, options) {
config.module.rules.push({
test: /\.(png|jpg|gif|svg|eot|ttf|woff|woff2)$/,
use: {
loader: 'url-loader',
options: {
limit: 100000
}
}
})
return config
}
}))
Run Code Online (Sandbox Code Playgroud)
单独他们工作得很好!但是我无法将它们组合在一个规则中,以便两者可以一起工作。
谢谢你的帮助!!
您应该使用 next-compose-plugins。下面是一个链接,供其他参考。
如何在 NextJS 配置文件中组合多个加载器(CSS、LESS、ttf 等)?
但下面的代码应该可以解决您的问题:
安装
yarn add --dev @zeit/next-css
yarn add --dev @zeit/next-sass file-loader url-loader
Run Code Online (Sandbox Code Playgroud)
更新您的 next.config.js 文件
const withPlugins = require('next-compose-plugins');
const sass = require("@zeit/next-sass")
const css = require("@zeit/next-css")
const nextConfig = {
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
}
}
module.exports = withPlugins([
[css],
[sass, {
cssModules: true
}]
], nextConfig);
Run Code Online (Sandbox Code Playgroud)
注意:您现在应该能够像这样导入 scss 模块:
import styles from 'your-file-name.module.scss'
Run Code Online (Sandbox Code Playgroud)
注意:请注意格式不正确的供应商库,在这种情况下,您应该按如下方式导入:
import "slick-carousel/slick/slick-theme.css";
import "slick-carousel/slick/slick.css";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6736 次 |
| 最近记录: |