我正在开发开源项目,现在我需要为前端设置webpack。我尝试下面的webpack配置,JS工作正常,但css不是,没有css输出文件。我不知道为什么会这样,请帮助我。
下面是我的webpack config js文件:
const path = require("path");
const webpack = require('webpack');
const ExtractTextPlugin = require("extract-text-webpack-plugin");
const node_dir = __dirname + '/node_modules';
const sassLoaders = [
'css-loader',
'sass-loader?indentedSyntax=sass&includePaths[]=' + path.resolve(__dirname, './public/stylesheets/')
]
const config = {
addVendor: function (name, path) {
this.resolve.alias[name] = path;
this.module.noParse.push(new RegExp('^' + name + '$'));
},
entry: {
app: './public/javascripts/app.js',
vendors: ['jquery','underscore']
},
output: {
path: path.join(__dirname, process.env.NODE_ENV === 'production' ? './public/dist' : './public/dev'),
filename: process.env.NODE_ENV === 'production' ? '[name].[hash].js' : '[name].js',
publicPath: 'public/dev'
},
module:{
noParse: [],
loaders:[
{
test: /\.scss$/,
loader: ExtractTextPlugin.extract('style-loader', sassLoaders.join('!'))
},
{
test: /\.js$/,
exclude: /node_modules/,
loader:'babel?presets[]=es2015'
}
]
},
resolve: {
alias: {},
extensions: ['', '.js', '.scss'],
},
plugins: [
new webpack.NoErrorsPlugin(),
new ExtractTextPlugin("qor.css", {
allChunks: true
}),
new webpack.optimize.CommonsChunkPlugin('vendors', 'vendors.bundle.js'),
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
"window.jQuery": "jquery"
}),
new webpack.ProvidePlugin({
_: "underscore",
})
]
};
config.addVendor('jquery', node_dir + '/jquery/dist/jquery.js');
config.addVendor('underscore', node_dir + '/underscore/underscore.js');
module.exports = config;
当我运行webpack -d --watch --progress --colors
时,没有css文件输出。只是js文件。
这是我的项目文件夹
答案 0 :(得分:8)
您没有忘记在js入口点使用require:
要求样式表// in your modules just require the stylesheet
// This has the side effect that a <style>-tag is added to the DOM.
require("./stylesheet.css");
如果要生成本机css输出文件,请查看this guide from webpack documentation。
答案 1 :(得分:0)
只需完成@denysdovhan:。
使用webpack 4+时,您需要在package.json中提供sideEffect属性:
{ “ name”:“您的项目”, “ sideEffects”:false }
您可以在此处查看说明: https://webpack.js.org/guides/tree-shaking/#mark-the-file-as-side-effect-free