如何防止 NPM 自定义参数中的斜线扩展?

Posted

技术标签:

【中文标题】如何防止 NPM 自定义参数中的斜线扩展?【英文标题】:How to prevent slash expansion in NPM custom arguments? 【发布时间】:2018-11-12 16:42:14 【问题描述】:

在 package.json 中:

"scripts": 
    ...
    "build": "ng build --prod",
    ...

在我的 Bash 脚本中:

npm run build -- --base-href "/mydir/"

运行 Bash 脚本时,会发生这种情况:

ng build --prod "--base-href" "C:/Program Files/Git/mydir/"

但我想要:

ng build --prod "--base-href" "/mydir/"

【问题讨论】:

【参考方案1】:

你可以试试angular/angular-cli issue 5606中Tolga Balci (tolgabalci)的建议:

请参阅“MinGW Posix path conversion”了解何时发生转化:

您可以通过在调用ng 时设置MSYS2_ARG_CONV_EXCL 环境变量来告诉git bash 避免转换-bh 参数,如下所示:

MSYS2_ARG_CONV_EXCL="-bh=" ng build --prod -bh="/en/"

请注意,要使用排除,您必须使用带有=-bh 参数,而不是空格,因为MSYS2_ARG_CONV_EXCL 会认为空格后面的值是不同的参数。

OP Marco Eckstein 确认in the comments:

就我而言,它是(都在同一行):

MSYS2_ARG_CONV_EXCL="--base-href" npm run build -- --base-href="/mydir/" 

【讨论】:

谢谢。所以在我的例子中,它是: MSYS2_ARG_CONV_EXCL="--base-href" npm run build -- --base-href="/mydir/" (都在同一行) @MarcoEckstein 好的。我已将您的评论包含在答案中以提高知名度。

以上是关于如何防止 NPM 自定义参数中的斜线扩展?的主要内容,如果未能解决你的问题,请参考以下文章

如何在通过 NPM 分发时管理 React 组件(Redux、CSS)的自定义方面

创建 keycloak 自定义主题

如何发布一个自定义Node.js模块到NPM(详细步骤)

Android Studio自定义加固插件

如何使用 Equatable 创建扩展以删除自定义数组元素?

如何使用B2C自定义策略防止密码重用