angular - 客户端代码中的 Webpack 编译哈希
问题描述
问题
我正在尝试将编译哈希作为 Angular 客户端代码中的变量。我最初的想法是通过DefinePlugin使用ExtendedAPIPlugin插件。Webpack 插件文档指出
ExtendedAPIPlugin -> 将有用的免费变量添加到包中。
__webpack_hash__
编译的哈希可作为免费 var 使用。
webpack.config.js
plugins: [
new webpack.ExtendedAPIPlugin(),
...
new webpack.DefinePlugin({
'process.env': {
'NODE_ENV': JSON.stringify(env),
'DEP_HASH': JSON.stringify(__webpack_hash__) // ???
}
})
]
客户代码
process.env.DEP_HASH
然而,webpack 构建抱怨:
ReferenceError: __webpack_hash__ is not defined
那么这个变量在哪里以及如何__webpack_hash__
使用呢?
Webpack 版本:3.10.0
解决方案
declare var __webpack_hash__: any;
export class SomeClass {
...
private someFunction(): void {
let hash = __webpack_hash__(); // Not AOT
let hash = __webpack_hash__; // AOT
}
...
}
解决方案
直接在您的应用程序代码中使用它:
视图.js
class SomeView {
constructor() {
this.hash = __webpack_hash__;
}
}
如果您使用的是 Typescript,则需要定义__webpack_hash__
为全局变量。我想这会做到:
declare var __webpack_hash__: string;
推荐阅读
- firebase - 需要将我的时间字符串转换为时间戳以更新 firestore 中的当前时间戳字段
- winapi - 缺少 GDI+ 方法
- haskell - Idris 中元组的智能构造函数
- python - 我将如何使用具有两个变量 python 的函数?
- laravel-livewire - Alpine JS 使用错误的 id
- ajax - 如何使用 AJAX 调用从 rails 4 应用程序中使用 gem“axlsx”和“axlsx_rails”下载 xlsx 文件?
- javascript - 轴上的 d3.timeMonth 显示每个日期,而不是每个月
- css - 我需要一个使用自定义 CSS 隐藏和显示文本的解决方案
- java - 如何替换 LinkedHashMap 中的字符?
- ios - 如何在 watchOS 7 上的 SwiftUI 中更改模式工作表视图中的“取消”按钮文本?