'SyntaxError: Identifier directly after number' when string starts with number
'SyntaxError: Identifier directly after number' when string starts with number
我想在我的开发环境和生产环境中都包含当前提交哈希,它可以通过 /version
路径获取。
我的 webpack 配置:
//webpack.config.js
...
const commitHash = require('child_process').execSync('cd .. && git rev-parse --short HEAD', {encoding: 'utf8'}).trim();
module.exports = {
mode: 'production',
target: 'node',
...
plugins: [
new webpack.DefinePlugin({
'COMMIT_HASH': commitHash,
})
]
};
我的 nodejs 服务器:
//server.js
...
fastify.get('/version', function (request, reply) {
const version = process.env.NODE_ENV === "dev" ?
require('child_process').execSync('cd .. && git rev-parse --short HEAD', {encoding: 'utf8'}).trim() : COMMIT_HASH;
reply.send(version);
})
...
我的问题是,当我用 webpack 构建它时,我得到 SyntaxError: Identifier directly after number
和
server.js from Terser plugin
Invalid syntax: 3511a4a [webpack://./server.js:214,104]
第 214 行是 require('child_process')...
。
但是
如果我将 webpack 配置更改为 const commitHash = 'a3511a4a';
一切正常并且构建成功。如果我将其更改为 const commitHash = '3511a4a';
,错误又会出现。
Webpack 版本为 5.64.2
因为插件会直接替换文本,所以给它的值必须包括字符串本身内部的实际引号。通常,这是通过替代引号完成的,例如 '"3511a4a"',或使用 JSON.stringify('3511a4a').
我想在我的开发环境和生产环境中都包含当前提交哈希,它可以通过 /version
路径获取。
我的 webpack 配置:
//webpack.config.js
...
const commitHash = require('child_process').execSync('cd .. && git rev-parse --short HEAD', {encoding: 'utf8'}).trim();
module.exports = {
mode: 'production',
target: 'node',
...
plugins: [
new webpack.DefinePlugin({
'COMMIT_HASH': commitHash,
})
]
};
我的 nodejs 服务器:
//server.js
...
fastify.get('/version', function (request, reply) {
const version = process.env.NODE_ENV === "dev" ?
require('child_process').execSync('cd .. && git rev-parse --short HEAD', {encoding: 'utf8'}).trim() : COMMIT_HASH;
reply.send(version);
})
...
我的问题是,当我用 webpack 构建它时,我得到 SyntaxError: Identifier directly after number
和
server.js from Terser plugin
Invalid syntax: 3511a4a [webpack://./server.js:214,104]
第 214 行是 require('child_process')...
。
但是
如果我将 webpack 配置更改为 const commitHash = 'a3511a4a';
一切正常并且构建成功。如果我将其更改为 const commitHash = '3511a4a';
,错误又会出现。
Webpack 版本为 5.64.2
因为插件会直接替换文本,所以给它的值必须包括字符串本身内部的实际引号。通常,这是通过替代引号完成的,例如 '"3511a4a"',或使用 JSON.stringify('3511a4a').