NodeJS package.json -是否可以在脚本中使用version作为变量

bgibtngc  于 2022-12-26  发布在  Node.js
关注(0)|答案(2)|浏览(154)

每次压缩项目时,我都需要手动同步version和生成的文件名(如CCCC007.tgz
在我的package.json中,compress-files脚本如下所示:

{
  "name": "MyBuild",
  "version": "0.0.7",
  "scripts": {
    "dev": "nodemon --legacy-watch ./src",
    "start": "node src/",
    "compress-files": "tar --exclude='./node_modules' --exclude='./myBuild.pem' --exclude='./config/local.json' -zcvf ~/CCCC007.tgz . ",
  },
}

我想知道是否可以将version作为变量,并在脚本compress-files中使用它,如下所示:

"name": "MyBuild",
  "version": "0.0.7",
  "scripts": {
    "dev": "nodemon --legacy-watch ./src",
    "start": "node src/",
    "compress-files": "tar --exclude='./node_modules' --exclude='./myBuild.pem' --exclude='./config/local.json' -zcvf ~/CCCC${this.version}.tgz . ",
  },
p1iqtdky

p1iqtdky1#

不能在JSON中引用另一个对象,当然也不能在值中引用。
/的方向看,你好像在linux上,你可以这样做:

"get-version": "node -e \"console.log(require('./package.json').version)\"",
"compress-files": "tar [...] `npm run get-version`",

话虽如此,还是有一些工具可以帮助你更轻松的发布和版本控制。你可以给予一下Release-It。但是......如果你只需要一个带有tar的package.json脚本,不要让任何人告诉你你应该用不同的方式来做。

gcuhipw9

gcuhipw92#

据我所知,你可以在包.json里面使用这个变量:
${npm软件包名称} ${npm软件包版本}
Readed from this post

相关问题