gpt4 book ai didi

css - 尝试使用 webpack 4 从 scss 文件中获取 css 文件

转载 作者:行者123 更新时间:2023-11-28 00:31:00 25 4
gpt4 key购买 nike

我想像这样设置我的 jsscss Assets :

  • /src/_assets/js/app.js
  • /src/_assets/js/development.js
  • /src/_assets/scss/app.scss

然后我想以这些捆绑的静态 Assets 结束:

  • /_site/js/app.js
  • /_site/js/development.js
  • /_site/css/app.css

我一直在 js 方面,但是我很难让我的 scss 文件变成 css 成功。如果我强制使用 mode: 'production',CSS 文件生成,但前 100 行左右会被一堆注释 js 替换代码。如果我允许 mode: 'development',整个 CSS 文件就是 js 代码。

我做错了什么?

package.json:

{
"devDependencies": {
"@11ty/eleventy": "^0.7.1",
"@babel/core": "^7.0.0",
"@babel/preset-env": "^7.0.0",
"babel-loader": "^8.0.5",
"css-loader": "^2.1.0",
"mini-css-extract-plugin": "^0.5.0",
"node-sass": "^4.11.0",
"sass-loader": "^7.1.0",
"style-loader": "^0.23.1",
"webpack": "^4.28.4",
"webpack-cli": "^3.2.1"
}
}

webpack.config.js:

const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const devMode = process.env.NODE_ENV !== 'production';

module.exports = {

name: devMode ? 'development' : 'production',
mode: devMode ? 'development' : 'production',

entry: {

// JS
'js/app.js': './src/_assets/js/app.js',
'js/development.js': './src/_assets/js/development.js',

// SCSS
'css/app.css': './src/_assets/scss/app.scss',
},

output: {
path: __dirname + '/src',
filename: '[name]',
},

module: {
rules: [
{
test: /\.js/,
loader: 'babel-loader',
include: __dirname + '/src/_assets/js'
},
{
test: /\.(sa|sc|c)ss$/,
use: [
devMode ? 'style-loader' : MiniCssExtractPlugin.loader,
'css-loader',
'sass-loader',
],
include: __dirname + '/src/_assets/scss'
}
],
},

plugins: [
new MiniCssExtractPlugin(
{
// Options similar to the same options in webpackOptions.output
// both options are optional
filename: "./[name]",
chunkFilename: "./[id].css"
}
)
],

};

最佳答案

我想通了。以下是我所做的更改:

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"
}
)
],

};

/src/_assets/js/app.js:

import './../scss/app.scss';

关于css - 尝试使用 webpack 4 从 scss 文件中获取 css 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54410415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com