Thé*_*aux 5 javascript css sass webpack
我有一个React应用程序,我试图在其中包含一些Sass。
我还使用Webpack将所有.scss文件捆绑到一个.css文件中进行生产。
为此,我使用了mini-css-extract-plugin,但是我的所有样式文件都没有捆绑到最终输出文件中,即使它们已导入下面的app.js中也是如此。仅将我app.js中的.scss文件正确地装入了捆绑包,但没有正确地装入了styles.scss。因此,我的样式在开发阶段有效,但在部署生产时却没有。
这是我要构建我的应用程序时运行的命令(在package.json文件中)。
"build": "webpack --mode production --config webpack.prod.js ./src/app.js --output ./dist/bundle.js"
Run Code Online (Sandbox Code Playgroud)
webpack.prod.js
const merge = require('webpack-merge');
const common = require('./webpack.common.js');
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
module.exports = merge(common, {
mode: 'production',
devtool: 'source-map',
optimization: {
minimizer: [
new UglifyJsPlugin({
cache: true,
parallel: true,
sourceMap: true
}),
new OptimizeCSSAssetsPlugin({})
]
}
});
Run Code Online (Sandbox Code Playgroud)
webpack.common.js
const CleanWebpackPlugin = require('clean-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
module.exports = {
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader'
}
},
{
test: /\.html$/,
use: [
{
loader: 'html-loader',
options: { minimize: true }
}
]
},
{
test: /\.s?css$/,
use: [MiniCssExtractPlugin.loader, 'css-loader', 'sass-loader']
}
]
},
plugins: [
new CleanWebpackPlugin(['dist']),
new HtmlWebpackPlugin({
template: './public/index.html',
filename: 'index.html',
favicon: './public/images/favicon.ico'
}),
new MiniCssExtractPlugin({
filename: '[name].css',
chunkFilename: '[id].css'
})
]
};
Run Code Online (Sandbox Code Playgroud)
src / app.js
import 'normalize.css/normalize.css';
import 'react-dates/lib/css/_datepicker.css';
import './styles/styles.scss';
Run Code Online (Sandbox Code Playgroud)
src / styles / styles.scss
@import './base/settings';
@import './base/base';
@import './components/_button';
@import './components/_header';
@import './components/_content-container';
@import './components/_page-header';
@import './components/_input-group';
@import './components/_inputs';
@import './components/_form';
@import './components/_list';
Run Code Online (Sandbox Code Playgroud)
Webpack输出
Child html-webpack-plugin for "index.html":
1 asset
Entrypoint undefined = index.html
[0] ./node_modules/html-webpack-plugin/lib/loader.js!./public/index.html 217 bytes {0} [built]
Child mini-css-extract-plugin node_modules/css-loader/index.js!node_modules/sass-loader/lib/loader.js!node_modules/normalize.css/normalize.css:
Entrypoint mini-css-extract-plugin = *
2 modules
Child mini-css-extract-plugin node_modules/css-loader/index.js!node_modules/sass-loader/lib/loader.js!node_modules/react-dates/lib/css/_datepicker.css:
Entrypoint mini-css-extract-plugin = *
2 modules
Child mini-css-extract-plugin node_modules/css-loader/index.js!node_modules/sass-loader/lib/loader.js!src/styles/styles.scss:
Entrypoint mini-css-extract-plugin = *
[0] ./node_modules/css-loader!./node_modules/sass-loader/lib/loader.js!./src/styles/styles.scss 3.66 KiB {0} [built]
+ 1 hidden module
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1128 次 |
| 最近记录: |