如何将带有前导斜杠的参数传递给 npm 脚本

Posted

技术标签:

【中文标题】如何将带有前导斜杠的参数传递给 npm 脚本【英文标题】:How to pass an argument with a leading slash to npm script 【发布时间】:2020-10-19 23:15:43 【问题描述】:

我有一个带有一些脚本的 package.json:

 "scripts": 
    "build": "webpack-cli --mode production",
    "build:dev": "webpack-cli --mode development",
 

我只想从命令行传递一个附加参数,而不是从package.json 中的脚本传递一个额外的参数,所以我运行这样的基本命令行:

npm run build:dev -- --test /toto/

我想要这个命令:

webpack-cli --mode development "--test" "/toto/"

但是,它运行这个命令:

webpack-cli --mode development "--test" "C:/Program Files/Git/toto/"

你知道我怎样才能避免在字符串“/toto”前面有绝对路径吗?

【问题讨论】:

/toto/ 参数是项目目录中目录的路径名吗?你在使用 Git Bash 吗? 是的,我正在使用 git bash。我在下面找到了解决方法 是的,我怀疑它与 Git Bash 相关,我只能使用它来重现相同的行为。有MSYS_NO_PATHCONV 环境变量可以临时设置为1 以防止这种转换,但不幸的是它不适用于npm 【参考方案1】:

只需使用"'/toto/'" 编写命令

npm run build:dev -- --test "'/toto/'"

【讨论】:

以上是关于如何将带有前导斜杠的参数传递给 npm 脚本的主要内容,如果未能解决你的问题,请参考以下文章

将参数传递给npm运行脚本

将命令行参数传递给 package.json 中的 npm 脚本

如何将开关参数传递给另一个 PowerShell 脚本?

将带有空格的路径作为参数传递给 bat 文件

为啥是 。作为参数传递给没有 -- 分隔符的 npm?

使用 Python 将包含双引号的参数传递给子进程