正在尝试使用webpack 4从scss文件获取css文件
我想这样设置我的正在尝试使用webpack 4从scss文件获取css文件,css,webpack,sass,Css,Webpack,Sass,我想这样设置我的js和scss资产: /src/_assets/js/app.js /src/_assets/js/development.js /src/\u资产/scss/app.scss 然后我想以这些捆绑的静态资产结束: /\u site/js/app.js /\u site/js/development.js /\u site/css/app.css 我一直在js方面,但是我很难让我的scss文件成功地转换为css。如果我强制使用模式:“production”,CSS文件不会生
js
和scss
资产:
/src/_assets/js/app.js
/src/_assets/js/development.js
/src/\u资产/scss/app.scss
/\u site/js/app.js
/\u site/js/development.js
/\u site/css/app.css
js
方面,但是我很难让我的scss
文件成功地转换为css
。如果我强制使用模式:“production”
,CSS文件不会生成,但是前100行左右的内容会被一堆注释过的js
代码所取代。如果我允许模式:'development'
,那么整个CSS文件就是js
code
我做错了什么?
package.json:
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
module.exports = {
name: process.env.NODE_ENV == 'production' ? 'production' : 'development',
mode: process.env.NODE_ENV == 'production' ? 'production' : 'development',
entry: {
'app': './src/_assets/js/app.js',
'development': './src/_assets/js/development.js',
},
output: {
path: __dirname + '/src',
filename: './js/[name].js',
},
module: {
rules: [
{
test: /\.js/,
loader: 'babel-loader',
include: __dirname + '/src/_assets/js'
},
{
test: /\.(sa|sc|c)ss$/,
use: [
'style-loader',
MiniCssExtractPlugin.loader,
'css-loader',
'sass-loader',
],
}
],
},
plugins: [
new MiniCssExtractPlugin(
{
// Options similar to the same options in webpackOptions.output
// both options are optional
filename: "./css/[name].css",
chunkFilename: "./css/[id].css"
}
)
],
import './../scss/app.scss';
{
“依赖性”:{
“@11ty/eleventy”:“^0.7.1”,
“@babel/core”:“^7.0.0”,
“@babel/preset env”:“^7.0.0”,
“巴别塔加载器”:“^8.0.5”,
“css加载器”:“^2.1.0”,
“迷你css提取插件”:“^0.5.0”,
“节点sass”:“^4.11.0”,
“sass加载程序”:“^7.1.0”,
“样式加载器”:“^0.23.1”,
“网页包”:“^4.28.4”,
Web包cli“^3.2.1”
}
}
我想出来了。以下是我所做的更改:
webpack.config.js:
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
module.exports = {
name: process.env.NODE_ENV == 'production' ? 'production' : 'development',
mode: process.env.NODE_ENV == 'production' ? 'production' : 'development',
entry: {
'app': './src/_assets/js/app.js',
'development': './src/_assets/js/development.js',
},
output: {
path: __dirname + '/src',
filename: './js/[name].js',
},
module: {
rules: [
{
test: /\.js/,
loader: 'babel-loader',
include: __dirname + '/src/_assets/js'
},
{
test: /\.(sa|sc|c)ss$/,
use: [
'style-loader',
MiniCssExtractPlugin.loader,
'css-loader',
'sass-loader',
],
}
],
},
plugins: [
new MiniCssExtractPlugin(
{
// Options similar to the same options in webpackOptions.output
// both options are optional
filename: "./css/[name].css",
chunkFilename: "./css/[id].css"
}
)
],
import './../scss/app.scss';
})
/src/_assets/js/app.js:
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
module.exports = {
name: process.env.NODE_ENV == 'production' ? 'production' : 'development',
mode: process.env.NODE_ENV == 'production' ? 'production' : 'development',
entry: {
'app': './src/_assets/js/app.js',
'development': './src/_assets/js/development.js',
},
output: {
path: __dirname + '/src',
filename: './js/[name].js',
},
module: {
rules: [
{
test: /\.js/,
loader: 'babel-loader',
include: __dirname + '/src/_assets/js'
},
{
test: /\.(sa|sc|c)ss$/,
use: [
'style-loader',
MiniCssExtractPlugin.loader,
'css-loader',
'sass-loader',
],
}
],
},
plugins: [
new MiniCssExtractPlugin(
{
// Options similar to the same options in webpackOptions.output
// both options are optional
filename: "./css/[name].css",
chunkFilename: "./css/[id].css"
}
)
],
import './../scss/app.scss';