我正在使用 webpack (V 1.13.2) 来捆绑我的 webapp + ReactJS。
我想将当前提交 SHA 传递给 js。
获取当前提交 SHA 为 straightforward ,但我不知道如何将其传递给js文件。
我尝试更改输出 js 文件并将提交 SHA 链接到它:
output:{
path: distPath,
publicPath: '/',
filename: "client.min.js?" + COMMIT_SHA
},
但是 webpack 不会捆绑它。
我还尝试使用string-replace-loader像下面这样:
webpack.config.js:
{
test: /\.jsx?$/,
loader: 'string-replace-loader',
query: {
search: 'COMMIT_SHA_ANCHOR',
replace: VERSION
}
},
客户端.js:
var commit = 'COMMIT_SHA_ANCHOR';
但我收到语法错误(它在关闭字符串之前创建一个新行):
Unterminated string constant (34:13)
var commit = '4820fa5de22d3463a0ca39c1d4067a62800d1d07
| ^
35 | ';
将提交 SHA 传递给 js 的最佳方法是什么(如果存在)?
最佳答案
DefinePlugin
应该做你想做的事。
在您的webpack.config.js
中:
plugins: [
new webpack.DefinePlugin({COMMIT_SHA: JSON.stringify(VERSION)})
]
这将创建一个全局变量COMMIT_SHA
,您可以在任何地方引用它:
console.log(COMMIT_SHA);
<小时/>
您还应该验证您使用的 VERSION
字符串末尾是否已包含换行符。尝试将 console.log(JSON.stringify(VERSION))
添加到您的 webpack 配置中,看看它是否包含 \n
。
关于javascript - Webpack + React : pass commit SHA from webpack to JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41677228/