将参数注入npm脚本命令

3

我有一个npm脚本,看起来像这样:

"scripts": {
    "example": "webpack-dev-server --content-base examples/embeddable/"
},

我希望根据调用npm脚本时传递的内容动态地形成--content-base参数,例如:

npm run example -- embeddable

我知道--语法可以将参数传递给process.argv,但是我在这里没有调用Node脚本,所以不确定如何在形成命令时访问它们。 有其他人知道一种好的跨平台方法吗?(必须适用于Windows 7,即没有bash功能。)

1个回答

0

这应该可以工作($1被替换为您作为第一个参数添加的任何内容):

"scripts": {
    "example": "webpack-dev-server --content-base examples/${1}/"
},

像这样运行:

npm run example -- embeddable

谢谢Patrick,我有一个类似的想法,但不确定它是否适用于Windows(不幸的是这是一个要求)。你有没有想过这是否可以移植? - serverpunk
1
嗯...我不知道,我自己是Mac用户。我已经在我的机器上尝试了"scripts": {"example": "echo $1"},它运行得很好。但是Windows 10现在不是有一个像Unix一样的合适的shell吗? - Patrick Hund
我认为你对于Windows 10的看法是正确的,但我们在我的工作领域可能落后了一两代:P 我刚试着在我的Mac上操作这个命令--它似乎会将embeddable附加到整个命令中(除了--content-base标志之外),这导致webpack-dev-server找错了位置。不过我会继续尝试的! - serverpunk
尝试将数字1放入花括号中(更新的代码示例) - Patrick Hund
1
嗯,仍然得到相同的结果。 - serverpunk
美元符号、花括号、连字符与否,我都没有得到任何替换。它只是运行带有参数标记的函数。Ubuntu 14.04与Gnome终端。 - Costa Michailidis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接