【问题标题】:webpack css loader not work: no output css filewebpack css 加载器不起作用:没有输出 css 文件
【发布时间】:2016-03-22 05:31:38
【问题描述】:

我正在开发开源项目,现在我需要为前端设置 webpack。我尝试了下面的 webpack 配置,JS 工作正常,但 css 不是,没有 css 输出文件。我不知道为什么会这样,请帮助我。

下面是我的 webpack 配置 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文件。

这是我的项目文件夹

【问题讨论】:

    标签: javascript css webpack


    【解决方案1】:

    你是不是忘了在 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

    【讨论】:

      【解决方案2】:

      刚刚完成@denysdovhan:

      使用 webpack 4+ 时,您需要在 package.json 属性中提供 sideEffect

      {
        "name": "your-project",
        "sideEffects": false
      }
      

      解释可以看这里:Link

      【讨论】:

        猜你喜欢
        • 2018-06-25
        • 1970-01-01
        • 1970-01-01
        • 2017-07-10
        • 2018-04-22
        • 1970-01-01
        • 1970-01-01
        • 2016-01-31
        • 2022-12-15
        相关资源
        最近更新 更多