2
我的工作流程是npm脚本,在node_modules中运行命令以及简单的shell命令。如何在Windows的npm脚本中使用反引号
不幸的是,由于我在某些命令中使用了反引号,这使得windows用户很难(请参阅下面的示例)。我有一个拉动请求,志愿将我的构建转换为shellJS/shx,所以我的回购将构建跨平台,但我们无法找到npm脚本中反引号的解决方案。
问:
- 没有NPM使用什么样的壳呢?在Windows上它似乎不支持反引号。
- 是否有解决方法?管道没有帮助,唉,rm,mkdir等不使用stdin。在的package.json
实施例反引号使用:
"mkdirs": [
"dist/AS",
"libs",
"models/scripts"
],
"scripts": {
"mkdirs": "mkdir -p `bin/pkgkey.js mkdirs`",
....
..其中bin/pkgkey.js mkdirs
脚本只是返回mkdirs阵列。这可能看起来很奇怪,但对于组织npm样式的工作流程来说非常棒。
的pkgkey脚本(简体):
#!/usr/bin/env node
const fs = require('fs')
const json = JSON.parse(fs.readFileSync('package.json'))
const key = process.argv[2]
let val = json[key]
if (Array.isArray(val)) val = val.join(' ')
process.stdout.write(val)
不是Windows用户,但你不能逃脱引号:' “mkdirs”: “MKDIR -p \” 斌/ pkgkey.js mkdirs \ “”,' – Dominik
@Dominik的OP提到的反引号:' \ '',但是。 – ifconfig
是的,他说他们没有这么努力去引用那些在所有炮弹中工作的引号......不是吗? – Dominik