npm - 如何在Windows的npm脚本中使用变量

标签 npm

我有一个光秃秃的存储库,我们可以从中开始新的项目。在该存储库内是另一个必须单独更新的存储库。每个项目都从这两个资源库开始,但是有时在项目过程中不应同时更新它们。

我正在尝试创建一个Npm脚本来克隆父存储库,然后打开文件夹并克隆子存储库。

该脚本具有代表项目的变量,因此代表文件夹名称。

基于this answer,我提出了以下内容:

"new_project": "git clone x:/parent_repo $PROJECT & cd $PROJECT & git clone x:/child_repo"

我像这样运行命令:PROJECT=new_project_name npm run new_project也尝试过PROJECT="new_project_name" npm run new_project
不幸的是,这将创建一个名为$PROJECT的文件夹,而不是实际读取变量。

还尝试了:
"new_project": "git clone x:/parent_repo $PROJECT & cd $PROJECT & git clone x:/child_repo"

npm run new_project --PROJECT new_project_name

或与
npm run new_project -- --PROJECT=new_project

结果相同。

这些解决方案中的大多数似乎都可以在Linux机器上使用,但不适用于Windows。

看来字符串中的变量没有被读取。我试过了
"git clone x:/parent_repo "+$PROJECT+" & cd "+$PROJECT+" & git clone x:/child_repo" 

但这只是给了我语法错误。

如何从命令行成功传递可以在npm脚本中使用的变量?

该命令必须为一行。

我正在Windows上使用Git bash作为cli

npm版本:2.14.20

最佳答案

因此,由于操作系统差异,无法工作的the answer I linked似乎在我的计算机上失败。

这适用于Linux:
"new_project": "git clone x:/parent_repo $PROJECT & cd $PROJECT & git clone x:/child_repo"PROJECT=new_project_name npm run new_project
要使其在Windows上正常工作,您需要使用% %代替$对该变量进行转义。另外,您还需要在Windows cli上专门设置变量。要与脚本结合使用,您需要将脚本和set variable命令与&&链接起来。

因此,以上在Windows上变为:
"new_project": "git clone x:/parent_repo %PROJECT% & cd %PROJECT% & git clone x:/child_repo"SET PROJECT=new_project_name && npm run new_project
还要注意,如果要引用配置变量,则必须以相同的方式转义该变量。因此$npm_package_config_yourvariable在Windows上成为%npm_package_config_yourvariable%

关于npm - 如何在Windows的npm脚本中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39793500/

相关文章:

node.js - npm-windows-upgrade 不起作用

reactjs - 部署React前端时如何注入(inject)API服务器URL?

node.js - npm 错误! cb() 从未调用过!尝试运行 npm install 命令时出错

javascript - 将 props 传递给 NPM 包中的函数

javascript - Laravel MIX,如何在多个文件中使用单个函数

npm - 如何在我的电脑上更改我的节点版本

javascript - `npm run jshint` 结果为 `missing script: jshint`

Node.js 从本地文件安装

npm - 使用 nixos 我可以全局安装 nodejs 包吗?

npm - 将多个命名参数传递给 package.json 脚本