webpack 配置:从 *.js 条目/包文件名中删除哈希

Gui*_*meB 3 google-chrome-extension webpack vue.js webpack-chain

我正在做一个 vue.js 应用程序。

构建后生成一个 js 文件“background.2a548437.js”而不是我想要的“background.js”。

我正在通过“vue.config.js”文件进行 webpack-chain 配置。

为了诊断,我正在阅读“$vue inspect”的结果,但我不知道应该调整哪个参数以从 js 文件中删除哈希。

我确实看到了像 'img/[name].[hash:8].[ext]' 这样的模式,但对于 js,它是 'js/[name].js'

您有任何解决方案或线索吗?


背景/原因:

它使用 webpack "^4.0.0" 和 webpack-chain "^6.3.1" 通过 "vue.config.js" 进行配置。

我正在做一个 chrome 插件,它有一个引用“background.js”的静态 manifest.json 文件。

我将深入研究让 webpack 使用正确的“background.[hash].js”文件构建 manifest.json 文件,但我认为如果我能找到在文件名中禁用哈希的选项会更容易


// vue.config.js

const CopyWebpackPlugin = require('copy-webpack-plugin');

module.exports = {
    chainWebpack: config => {
        // add your custom entry point
        config
            .entry('background')
            .add('./src/background.ts');
    },
    configureWebpack: {
        plugins: [
            new CopyWebpackPlugin([
                { from: 'manifest.json', to: 'manifest.json', flatten: true },
            ]),
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:$vue 检查的结果。它太长了所以我链接了一个 pastebin https://pastebin.com/fbRzgfhY

Gui*_*meB 6

在花了很长时间试图了解 webpack-chain、webpack 及其插件的工作原理之后,我在 vue 文档中找到了简单的“filenameHashing”标志:https ://cli.vuejs.org/config/#indexpath

这是我的 vue.config.js 文件内容:

// vue.config.js
const CopyWebpackPlugin = require('copy-webpack-plugin');

module.exports = {
    filenameHashing: false, // <=================line that matters
    chainWebpack: config => {
        // add your custom entry point
        config
            .entry('background')
            .add('./src/background.ts');
    },
    configureWebpack: {
        plugins: [
            new CopyWebpackPlugin([
                { from: 'manifest.json', to: 'manifest.json', flatten: true },
            ]),
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)