我成功让 webpack 生成非 JavaScript 文件的唯一方法是entry
为主要资产包含一个。问题是,webpack 也在.js
基于这个资产生成一个文件,这是不必要的。这是在 webpack 配置中使用非 JavaScript 资产的正确方法吗?
const path = require('path');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const outputDir = 'build';
const extractStylus = new ExtractTextPlugin('../css/screen.css');
module.exports = {
entry: {
app: './src/js/index.js',
print: './src/js/print.js',
stylus: './src/stylus/screen.styl'
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader'
}
},
{
test: /\.styl$/,
use: extractStylus.extract({
fallback: 'style-loader',
use: ['css-loader', 'stylus-loader']
})
}
]
},
plugins: [extractStylus],
output: {
filename: '[name].bundle.js',
path: path.resolve(__dirname, `${outputDir}/js`)
}
};
有问题的特定行是entry
对象的一部分:
stylus: './src/stylus/screen.styl'
如果没有该行,则不会生成任何内容,但是使用该行会生成预期.css
的stylus.bundle.js
文件和文件。