我设法将我的css和更少的资源(从javascript“导入”)编译成all-my-LESS|CSS,使用ExtractTextPlugin提取它们,然后用MergeFilesPlugin将它们合并到combinedStyles.css中。
我遗漏了一点:如何运行cssnano (例如通过postcss?)最重要的是作为最后的一部分?(哦,虽然我有内联的源代码映射,但我没有设法生成一个外部combinedStyles.map文件)。
这是我的组合webpack.config.babel.js (忽略babel位,只是意味着,您可以用ES6编写它,使用更花哨的导入语句):
import path from 'path';
const webpack = require('webpack'); //to access built-in plugins
import ExtractTextPlugin from 'extract-text-webpack-plugin';
import MergeFilesPlugin from 'merge-files-webpack-plugin';
const extractCSS = new ExtractTextPlugin("all-my-CSS.css");
const extractLESS = new ExtractTextPlugin("all-my-LESS.css");
export default {
entry: [ './src/index_5.js' ],
output: {
path: path.resolve( 'dist')
filename: 'bundle.js',
sourceMapFilename: './bundle.js.map'
},
module: {
rules: [{
test: /\.css$/,
use: extractCSS.extract(
[{ // This is basically "use"
loader: "css-loader",
options: {
minimize: false, // done later
sourceMap: true,
modules: false, // no css modules, all global styles
}
}]
)
},
{
test: /\.less$/,
use: extractLESS.extract( // This is basically "use"
[// No style-loader here! We want this external!
{
loader: "css-loader", // translates CSS into CommonJS
options: {
minimize: false,
sourceMap: true
}
}, {
loader: "less-loader", // compiles Less to CSS
options: {
sourceMap: true,
}
}]
)
}
] // rules
}, // module
devtool: 'inline-source-map',
devServer: { inline: true },
plugins: [
extractCSS,
extractLESS,
new MergeFilesPlugin({
filename: 'combinedStyles.css', //output filename
test: /\.css$/,
deleteSourceFiles: false // for now
})
]
};发布于 2017-09-29 13:30:18
我已经用css-nano添加了postcss-loader,看看它是否有帮助。
另外,我不认为这里需要使用MergeFilesPlugins (这只是我的观点)。ExtractTextPlugin在这里很有用。
只需使用一个ExtractTextPlugin并将所有css或更少的文件放在一个文件夹中(与.css或.less扩展),加载器将被选择性地应用于他们,稍后在插件中只需使用
new ExtractTextPlugin('style.css')来提取一个常见的css文件。
使用cssnano:
[{
test: /\.css$/,
use: ExtractTextPlugin.extract(
[{ // This is basically "use"
loader: "css-loader",
options: {
minimize: false, // done later
sourceMap: true,
modules: false, // no css modules, all global styles
}
},
{
loader: 'postcss-loader',
options: {
plugins: function () {
return [
require('cssnano')({
autoprefixer: false,
safe: true
})
];
}
}
}]
)
},
{
test: /\.less$/,
use: ExtractTextPlugin.extract( // This is basically "use"
[// No style-loader here! We want this external!
{
loader: "css-loader", // translates CSS into CommonJS
options: {
minimize: false,
sourceMap: true
}
},
{
loader: 'postcss-loader',
options: {
plugins: function () {
return [
require('cssnano')({
autoprefixer: false,
safe: true
})
];
}
}
},
{
loader: "less-loader", // compiles Less to CSS
options: {
sourceMap: true,
}
}]
)
}
]https://stackoverflow.com/questions/46322223
复制相似问题