3

通过弄清楚如何使用热重载设置 webpack-dev-server 又浪费了一天。我想index.html使用以下路径提供我的 JS 和 CSS 资产:/dist/js/app.min.js/dist/css/styles.min.css.

我到底应该如何配置webpack.config.jsindex.html使用上述正确路径加载我的资产?使用当前配置,webpack-dev-server 仅将我的构建保存在/dist文件夹中,并且在 index.html 中,我必须设置没有 js 或 css 文件夹的路径,例如:( <script src="/dist/app.min.js" />)。

我的 webpack.config.js:

const path = require('path');
const webpack = require('webpack');

module.exports = {
  context: path.resolve(__dirname, './'),
  entry: './src/app.js',
  output: {
    publicPath: '/dist/',
    path: path.join(__dirname, '/dist/js'),
    filename: 'app.min.js'
  },
  devServer: {
    hot: true
  },
  resolve: {
    extensions: ['.js', '.jsx', '.ts', '.tsx']
  },
  module: {
    rules: [
      {
        test: /\.(scss|sass|css)$/,
        use: ['style-loader', 'css-loader', 'sass-loader']
      }
    ]
  },
  plugins: [
    new webpack.NamedModulesPlugin(),
    new webpack.HotModuleReplacementPlugin()
  ]
};

我的项目结构:

项目结构

4

1 回答 1

0

你熟悉 HtmlWebpackPlugin 吗?https://webpack.js.org/plugins/html-webpack-plugin/#src/components/Sidebar/Sidebar.jsx

这是我的设置:

new HtmlWebpackPlugin({
  template: project.paths.client('index.html'), // absolute url to index.html
  hash: false,
  filename: 'index.html',
  inject: 'body',
})

这将获取您的条目并将它们注入您的 index.html

于 2017-11-18T17:12:50.740 回答