多个资产向同一个文件名 index.html 发出不同的内容

Posted

技术标签:

【中文标题】多个资产向同一个文件名 index.html 发出不同的内容【英文标题】:Multiple assets emit different content to the same filename index.html 【发布时间】:2021-05-16 02:40:05 【问题描述】:

我的 webpack 配置出现以下错误 Multiple assets emit different content to the same filename index.html

当我删除 htmlWebpackPlugin 时,它可以工作,但我不会显示任何 html。我正在使用 Vue.js,我的配置如下所示:

const path = require('path')

const  VueLoaderPlugin  = require('vue-loader')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const CopyWebpackPlugin = require('copy-webpack-plugin')
const  CleanWebpackPlugin  = require('clean-webpack-plugin')

module.exports = (env, argv) => (
  mode: argv && argv.mode || 'development',
  devtool: (argv && argv.mode || 'development') === 'production' ? 'source-map' : 'eval',

  entry: './src/app.js',

  output: 
    path: path.resolve(__dirname, 'dist'),
    filename: '[name].js'
  ,

  node: false,

  module: 
    rules: [
      
        test: /\.vue$/,
        loader: 'vue-loader'
      ,
      
        test: /\.js$/,
        loader: 'babel-loader'
      ,
      
        test: /\.css$/,
        use: [
          'vue-style-loader',
          'css-loader'
        ],
        exclude: /\.module\.css$/
      
    ]
  ,

  resolve: 
    extensions: [
      '.js',
      '.vue',
      '.json'
    ],
    alias: 
      'vue$': 'vue/dist/vue.esm.js',
      '@': path.resolve(__dirname, 'src')
    
  ,

  plugins: [
    new CleanWebpackPlugin(
      cleanAfterEveryBuildPatterns: ['dist']
    ),
    new VueLoaderPlugin(),
    new HtmlWebpackPlugin(),
    new CopyWebpackPlugin(
      patterns: [
        from: path.resolve(__dirname, 'static'),
        to: path.resolve(__dirname, 'dist'),
        toType: 'dir'
      ]
    )
  ],

  devServer: 
    compress: true,
    host: 'localhost',
    https: true,
    open: true,
    overlay: true,
    port: 9000
  
);

我的文件结构是这样的

我查看了Conflict: Multiple assets emit to the same filename,但没有适合我的解决方案,还有其他选择吗?

【问题讨论】:

由于 CopyWebpackPlugin,我遇到了同样的错误。 【参考方案1】:

会不会是Vue loader also emitsindex.html

试试:

new HtmlWebpackPlugin(
  template: './index.html',
  filename: 'anotherFileName.html',
),

【讨论】:

说实话,我已经放弃了这个项目

以上是关于多个资产向同一个文件名 index.html 发出不同的内容的主要内容,如果未能解决你的问题,请参考以下文章

我可以指定资产的输出文件夹吗?

React + Alt:使用来自多个商店的数据向 DataSource 发出请求

如何从一个进程向多个其他进程发出信号?

向同一资源发出多个请求时,Chrome 会停止?

使用 laravel 向 api 发出多个请求

发出前向地理编码多个地址