如何在非模块脚本中注入Webpack DefinePlugin变量

问题描述 投票:0回答:2

我有以下问题:

我正在使用DefinePlugin在.js模块中定义一些变量。在.js模块中,这可以正常工作

但是,我的多页面应用程序加载 <HEADER>标记内的本地脚本(custom.js)。该脚本是标准javascript(不是模块),使用DefinePlugin中定义的变量之一。这是一个.js,必须在应用的每个页面中加载。

出于某种原因,Webpack不会在BUILD进程上插入此变量WEB_CONTEXT。

我认为原因是因为它没有被识别为依赖项。

Webpack config.js:

  new webpack.DefinePlugin({
        'WEB_CONTEXT': 'myapp/main'   
    );

全局脚本加载如下:

<script src="./src/js/custom.js"></script>

custom.js

 $(function () {

     // Compiled file incorrectly shows:
        const myPath = `${WEB_CONTEXT}/resources/images`;

     // Instead of:
        const myPath = `myapp/main/resources/images`;

    });
});

问题是:无论如何,Webpack都可以使WEB_CONTEXT变量也可用于那些脚本,例如custom.js(未导入,但通过?加载)。

我有以下问题:我正在使用DefinePlugin在.js模块中定义一些变量。在.js模块中,这可以正常工作。但是,我的多页应用程序加载了本地脚本(...

javascript webpack es6-modules webpack-4
2个回答
0
投票

Webpack仅在从入口文件开始的依赖关系树的一部分文件上“起作用”。


0
投票

webpack.config.js

© www.soinside.com 2019 - 2024. All rights reserved.