1

我试图让 webpack 为我的 less 而不是内联样式输出一个 css 文件。我一直在使用extract-text-webpack-plugin

我已经根据文档进行了设置,并查看了关于 stackoverflow 的类似问题,但无法弄清楚为什么我下面的 webpack 配置文件没有输出文件或在 index.html 中放置任何内容

var webpack = require('webpack');
var ExtractTextPlugin = require('extract-text-webpack-plugin');

module.exports = {
    entry: [
      'webpack/hot/only-dev-server',
      './app/main.js'
    ],
    output: {
        path: __dirname + '/dist',
        filename: 'bundle.js'
    },
    module: {
        loaders: [
            {
              test: /\.js?$/,
              loaders: ['react-hot', 'babel'],
              exclude: /node_modules/
            },
            {
              test: /\.js$/,
              exclude: /node_modules/,
              loader: 'babel-loader'
            },
            {
              test: /\.less$/,
              loader: ExtractTextPlugin.extract('style', 'css!less')
              //loader: "style!css!less"
            }
        ]
    },
    plugins: [
      new webpack.NoErrorsPlugin(),
      new ExtractTextPlugin('[name].css', {
            allChunks: true
        })
    ]

};
4

2 回答 2

2

实际上,在当前状态下,您需要手动嵌入 CSS。

但是,如果您使用HTML Webpack 插件(我强烈推荐它 (-:),它将自动注入,如文档所述:

如果您在 webpack 的输出中有任何 css 资源(例如,使用 ExtractTextPlugin 提取的 css),那么这些资源将包含<link>在 HTML 头部的标签中。

于 2016-03-03T11:50:52.183 回答
0

据我了解,这样使用加载器:

{
   test: /\.less$/,
   loaders: ['style', 'css', 'less']
}

通过 npm 安装 css-loader、style-loader 和 less-loader。在您的入口点,需要较少的文件,它们将作为样式应用于您的 index.html 文件。无需添加任何 html 标签。

于 2016-07-02T11:02:38.703 回答