javascript - 无法使用 webpack 缩小 css
问题描述
我想为生产缩小我的 css 文件,并且我正在使用具有以下配置的 webpack 3:
var webpack = require("webpack");
var path = require("path");
var ExtractTextPlugin = require("extract-text-webpack-plugin");
var OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin');
module.exports = {
entry: [
"./src/index.tsx", "./src/assets/css/styles.css"
],
output: {
filename: "bundle.js",
publicPath: "/",
path: path.resolve(__dirname, "dist")
},
// Enable sourcemaps for debugging webpack's output.
// devtool: "cheap-module-source-map",
resolve: {
// Add '.ts' and '.tsx' as resolvable extensions.
extensions: [".webpack.js", ".web.js", ".ts", ".tsx", ".js"]
},
plugins: [
new webpack.DefinePlugin({
'process.env': {
'NODE_ENV': JSON.stringify('production')
}
}),
new ExtractTextPlugin({
filename: (getPath) => {
return getPath('assets/css/styles.css').replace('css/js', 'css');
},
allChunks: true
}),
new OptimizeCssAssetsPlugin({
assetNameRegExp: /\.styles\.css$/g,
cssProcessor: require('cssnano'),
cssProcessorPluginOptions: {
preset: ['default', { discardComments: { removeAll: true } }],
},
canPrint: true
})
],
module: {
rules: [
// All files with a '.ts' or '.tsx' extension will be handled by 'awesome-typescript-loader'.
{ test: /\.tsx?$/, use: ["awesome-typescript-loader"] },
// All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'.
{ test: /\.js$/, enforce: "pre", use: "source-map-loader" },
{
test: /\.css$/,
use: [
'style-loader',
{ loader: 'css-loader', options: { importLoaders: 1 } },
{ loader: 'postcss-loader', options: {} }
]
}
],
loaders: [ {
test: /\.js|.jsx?$/,
exclude: /(node_modules|bower_components)/,
loader: 'babel-loader',
}, {
test: /\.(jpe?g|png|gif|svg)$/i,
loaders: [
'file?hash=sha512&digest=hex&name=[hash].[ext]',
'image-webpack?bypassOnDebug&optimizationLevel=7&interlaced=false'
]
} ]
}
};
错误:
模块构建失败:错误:加载 PostCSS 插件失败:找不到模块“postcss-plugin”
我在项目的根目录中也有这个 postcssrc.js:
module.exports = {
parser: 'sugarss',
plugins: {
'postcss-import': {},
'postcss-preset-env': {},
'cssnano': {}
}
}
如果我使用超过足够多的插件只是为了缩小 css,我会很困惑,有人知道这里有什么问题,或者可以指导我在这里需要什么或改变什么?
解决方案
推荐阅读
- excel - 如何根据输入的参数输出一个值 Excel
- angular - Angular Unit Test,如何使用服务调用测试组件功能
- bluetooth - 重启ESP32后蓝牙重新连接
- javascript - Wordpress - 向编辑器添加自定义媒体按钮不起作用。事件监听器没有捕捉到点击
- sql - 计算 Pivot SQL 中的总天差
- docker - docker push 到本地注册表失败
- mysql - 如何更改或填充变量内的数据库名称
- jenkins - groovy中的build方法可以返回build ID和build status吗?
- video - 如何将视频播放器插入 Buefy 模式?
- powershell - 合并两个没有重复的xml文件