конфигурация webpack: удалить хеш из имен файлов записи / пакета *.js

Я делаю приложение vue.js.

После сборки он сгенерирует js-файл "background.2a548437.js" вместо "background.js", который мне нужен.

Я выполняю настройку цепочки пакетов через файл "vue.config.js".

Для диагностики я читаю результат "$vue inspect", но не вижу, какой параметр следует настроить, чтобы удалить хэш из файлов js.

Я вижу шаблоны вроде 'img/[name].[Hash:8].[Ext]', но для js это 'js/[name].js' "

У вас есть какие-либо решения или предложения?


Контекст / Почему:

Он использует webpack "^4.0.0" и webpack-chain "^6.3.1" для настройки через "vue.config.js".

Я делаю хром-плагин, в котором есть статический файл manifest.json, ссылающийся на "background.js".

Я буду копаться в создании webpack, создавая файл manifest.json с правильным файлом "background.[Hash].js", но я подумал, что будет проще, если я смогу найти варианты отключения хеша в имени файлов.


// 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 },
            ]),
        ]
    }
}

edit: результат $vue inspect. это слишком долго, поэтому я связываю pastebin https://pastebin.com/fbRzgfhY

1 ответ

Решение

Потратив так много времени на попытки понять, как работает webpack-chain, webpack и его плагины, я обнаружил простой фалг "filenameHashing" в документации по vue: https://cli.vuejs.org/config/

Вот содержимое моего файла 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 },
            ]),
        ]
    }
}
Другие вопросы по тегам