javascript - 如何在非模块脚本中注入 Webpack DefinePlugin 变量
问题描述
我有以下问题:
我正在使用DefinePlugin跨 .js 模块定义一些变量。这在 .js 模块中运行良好
但是,我的多页应用程序会在TAG 中加载本地脚本 ( custom.js ) 。<HEADER>
该脚本是标准 javascript(不是模块),使用 DefinePlugin 中定义的变量之一。这是一个.js,必须在应用程序的每个页面中加载。
由于某种原因,这个变量 WEB_CONTEXT 没有被 Webpack 在 BUILD 进程中插入。
我认为原因是因为它不被视为依赖项。
Webpack 配置.js:
new webpack.DefinePlugin({
'WEB_CONTEXT': 'myapp/main'
);
全局脚本是这样加载的:
<script src="./src/js/custom.js"></script>
自定义.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 之类的脚本(未导入,但通过 ?
解决方案
Webpack 仅对从入口文件开始的依赖关系树的一部分“工作”。
如果你的custom.js
文件不在这棵树里面,webpack不会去碰它。
您可以通过 require 它来添加它,或者将其作为附加条目添加到您的应用程序中。
//webpack.config.js
module.exports = {
entry: {
main: './path/to/my/entry/file.js',
custom: './path/to/custom.js'
}
};
推荐阅读
- excel - 删除所有不包含特定文本的行:使用 InStr(Range) 定义搜索范围
- c# - How i can create custom user and role with ASP.NET Core identity v preview 3.0?
- python - How to move green character for use onkey in python?
- javascript - 将css元素添加到javascript?
- haskell - 无法从列表构造固定长度向量
- python - 如何使用 python 自动查询以从网站下载数据
- java - How can I transport double values between python and java?
- applescript - How to use if/else combined with Automator Loop
- wavesplatform - Reading Waves Wallet Balance from waves testnet
- nginx - Is there any way to use dynamic upstream in Nginx for both HTTP and TCP