我想创建一个package.json
构建脚本,当从Windows、Linux、Mac运行时,它执行的命令集略有不同。
问题是,我找不到一种方法,把它放在package.json
文件,将运行没有问题,在每个系统。
下面是一个我想拥有的示例:
"scripts" : {
"build.windows" : "echo do windows specific stuff",
"build.linux" : "echo do linux specific stuff",
"build.mac" : "echo do mac specific stuff",
"build" : "??????????????" <- what to put here to execute script designed for OS
on which npm is running
}
4条答案
按热度按时间d6kp6zgx1#
有一个名为
run-script-os
(NPM)的NPM包|GitHub),它不需要你写任何额外的文件,如果你想做的事情很简单,这会很方便。例如,在你的package.json
中,你可能有这样的东西:然后,您可以在Windows、Mac或Linux上运行
npm test
,并在每一个上得到类似(或不同!)的结果。w1e3prcc2#
您可以使用带有node run-script命令的脚本。
npm run
是它的一个快捷方式。包 Json :
命令列:
如果不喜欢,可以使用node.js中的命令。
包 Json :
Build.js
1tuwyuhd3#
这绝对不是最可靠的方法,但是从技术上讲,您可以在一个npm脚本中完成所有这些工作:
cld4siwp4#
这完全取决于您在脚本中尝试执行的操作,但您可以使用npm cli packages有效地向任何shell添加跨平台命令。
例如,如果你想 * 删除一个目录 *,你可以在windows和linux中使用不同的语法:
或者,您可以使用跨平台工作的npm包**
rimraf
**:以上面Dave P的例子为例,可以使用
cross-env
设置环境变量,如下所示:如果您不想使用
npx
来实时安装脚本,可以提前全局安装它们,如下所示:下面是我在making NPM scripts work cross platform上写的一篇文章,其中探讨了一些选项