将 css 与 webpack 捆绑在一起

Gre*_*Gum 5 webpack aurelia webpack-2

我是 webpack 的新手。我正在使用它来捆绑 aurelia 应用程序网站。

它捆绑了 html,并且还查找所有图像并将它们放入 dist 文件夹中。这可以正常工作并且运行没有错误。

现在我想以同样的方式捆绑CSS。我希望 css 能够像图像一样移动到“dist”文件夹中。

但是,当我运行 build 时,CSS 似乎没有被 webpack 处理。没有像图像那样查找 CSS 的消息。

这是我期望 webpack 处理的内容:

<link href="../css/main.css" rel="stylesheet">
Run Code Online (Sandbox Code Playgroud)

我做错了什么吗?

const path = require("path");
const {AureliaPlugin} = require("aurelia-webpack-plugin");
const webpack = require("webpack");

module.exports = {
  entry: { main: "aurelia-bootstrapper" },

  ///dev
  devtool: 'source-map',

  ///Prod
  //devtool: 'source-map',

  output: {
    path: path.join(__dirname, "wwwroot", "dist"),
    filename: "app.js",
    publicPath: "/dist/",
  },

  resolve: {
    extensions: [".js"],
    modules: ["App", "node_modules"],    
  },

  module: {
    rules: [
        { test: /\.html$/i, loaders: "html-loader" },
        { test: /\.css$/, loader: "style-loader!css-loader" },      {
          test: /\.(jpe?g|png|gif|svg)$/i, loader: "file-loader", options: {
              name: './images/[name].[hash].[ext]',
          }
        }
     ]
  },

  plugins: [
      new AureliaPlugin()
  ]
};
Run Code Online (Sandbox Code Playgroud)

小智 3

默认情况下,CSS 将嵌入到您的 app.js 中。如果你想将它们分开,请结合使用 css-loader 和 ExtractTextPlugin:

const ExtractTextPlugin = require('extract-text-webpack-plugin');
module: {
    rules: [
        {
            test: /\.css$/,
            exclude: /node_modules/,
            loader: ExtractTextPlugin.extract({
                fallback: "style-loader",
                use: "css-loader"
            })
        }
    ]
},
plugins: [
    new ExtractTextPlugin("styles.css")
]
Run Code Online (Sandbox Code Playgroud)

另请注意在 html 文件中引用添加的 css:

   <link rel="stylesheet" href="/dist/styles.css">
Run Code Online (Sandbox Code Playgroud)

https://github.com/webpack-contrib/extract-text-webpack-plugin