Как я могу переопределить теги src, сгенерированные HtmlWebpackPlugin? - PullRequest
1 голос
/ 13 июня 2019

У меня есть несколько выходов с некоторым хэшем в имени в моей конфигурации Webpack , и поэтому я пытаюсь использовать HtmlWebpackPlugin для автоматической генерации индексного HTML-файла, который обслуживает SPA приложение. Пока все хорошо.

Однако, поскольку я работаю с приложением SPA из инфраструктуры MVC с механизмом шаблонов; Я хочу, чтобы он решил, где находятся активы. Это означает, что я должен изменить теги <script>, поставленные HtmlWebpackPlugin, как:

От:

<script type="text/javascript" src="public/js/app.js">

Кому:

<script type="text/javascript" src="{{asset('app.js')}}">

Я прочитал документы и следил за перечисленными расширениями, но не повезло. Есть ли какой-либо недокументированный способ добиться того, что я пытаюсь сделать?

1 Ответ

0 голосов
/ 13 июня 2019

Я разработал плагин для достижения этой цели.Вот исходный код:

function HtmlWebpackLaravelAssetPlugin(options) {}

HtmlWebpackLaravelAssetPlugin.prototype.apply = function (compiler) {
    compiler.plugin('compilation', (compilation) => {

        compilation.plugin(
            'html-webpack-plugin-after-html-processing',
            data => {
                data.html = data.html.replace(/(src\=\"public\/)(.*?)(\"\>)/gi, 'src={{ asset("$2") }}>')
            }
        )

    })
}

module.exports = HtmlWebpackLaravelAssetPlugin

...