是否有任何CLI可以使用npm
脚本将我的package.json
版本注入某个任意文件?我不想使用gulp或grunt或webpack等。
这可以分为三个部分。
事实证明,当运行npm_package_version
时,NPM将包版本放在名为scripts的环境变量中。
有一个名为replace-in-file
的NPM包,它提供了一个用于替换字符串的CLI。
不幸的是,Windows上环境变量替换的格式(例如%FOO_BAR%
)与Linux上的格式不同(例如$FOO_BAR
)。幸运的是,还有另一个名为cross-var
的NPM软件包,它使环境变量在不同平台上保持一致。
将它们放在一起就可以替换它们。 x.x.x-SNAPSHOT
使用.example
中的以下脚本在dist
目录中的所有package.json
文件中使用当前包版本:
scripts: {
"build:insert-version": "cross-var replace-in-file \"x.x.x-SNAPSHOT\" \"$npm_package_version\" \"dist/*.example\""
}