javascript - 避免在 ParcelJS 上的 HTML 文件中重命名 JS 变量
问题描述
我使用 ParcelJS 作为模块捆绑器,出于某些原因,我在 HTML 中使用 JS 变量,这些变量稍后将由 JS 代码读取。
在我的 HTML 中:
<script>
var myVar = {
key1: 'value1',
key2: 'value2'
};
</script>
在我的 JS 中:
console.log(window.myVar.key1);
当我用 构建静态站点时parcel build
,HTML 中的 JS 变量被重命名,因此我无法再从 JS 文件中读取它:
<script>var a = { key1: 'value1', key2: 'value2' };</script>
根据Parcel docs,看起来重命名(修改)是由htmlnano完成的,它在引擎盖下使用Terser进行 JS 缩小。
我尝试使用.htmlnanorc
具有以下内容的文件:
{
"minifyJs": {
"mangle": false
},
"removeComments": false
}
我只添加了该removeComments
选项以确保.htmlnanorc
正在处理文件。HTML 注释被保留,它就是这样。
但是 JS 变量不断被重命名,即使我根据他们的文档尝试了几个 Terser 配置。所以看起来 htmlnano 忽略了minifyJs
密钥下的任何配置。
有什么我做错了吗?或者它可能是某种 ParcelJS 或 htmlnano 错误?
解决方案
将变量名称更改为
<script>
window.myVar = {
key1: 'value1',
key2: 'value2'
};
</script>
无法使用 更改此行为parcel.js
,因此您必须通过解决方法。
推荐阅读
- kotlin - 首次安装时位置权限和 LocationComponent 应用程序崩溃
- javascript - useState 方法不允许访问外部变量?
- c++ - 在进程之间传递多态对象
- python - Python - 用户生成的字典名称和输入
- reactjs - react-simple-maps 将地图倒置
- r - R:ggplot中特定条之间的间隙
- android - 我应该将哪个 APK 文件上传到 Firebase App Distribution?
- react-native - 将{/*评论*/}添加到react native的返回函数中时出现“不变违规”错误
- java - 如何在两个不同的 CRM 系统中自动化处理复制故障单?
- javascript - 如何导入已经导入另一个文件的文件?