大佬教程收集整理的这篇文章主要介绍了将 package.json 脚本从 mac 更改为 windows,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个基于 MAC 的项目,package.Json 脚本如下:
"scripts": {
"copyindex": "cp src/index.HTML build","copyCSS": "cp src/cds.CSS build","copyimages": "cp src/assets/images/** build/assets/images","copyFonts": "cp src/Fonts/** build/Fonts","copywc": "cp -r node_modules/@webcomponents/webcomponentsJs/bundles build && cp node_modules/@webcomponents/webcomponentsJs/webcomponents-loader.Js build","build": "rm -rf build && mkdir build && npm run copyindex && npm run copyCSS && mkdir build/assets && mkdir build/assets/images && npm run copyimages && mkdir build/Fonts && npm run copyFonts && npm run copywc && rollup -c","start": "serve build"
},
当运行 npm start 时,它在 MAC 上运行良好。我正在使用 windows,但它无法运行我的 PC。我将大部分命令更改为 windows 命令,如下所示。但是,它仍然不起作用。还有什么我需要做的吗? 由于无法识别命令,我收到错误消息。
Error: 'rm' is not recognized as an internal or external command,operable program or batch file.
"scripts": {
"copyindex": "copy src/index.HTML build","copyCSS": "copy src/cds.CSS build","copyFonts": "copy src/Fonts/** build/Fonts","copywc": "copy -r node_modules/@webcomponents/webcomponentsJs/bundles build && copy node_modules/@webcomponents/webcomponentsJs/webcomponents-loader.Js build","build": "rm -rf || rmdir /s build && mkdir build && npm run copyindex && npm run copyCSS && mkdir build/Fonts && npm run copyFonts && npm run copywc && rollup -c",
我不想删除 MAC 命令。我希望 npm 脚本在 windows 和 MAC 中都能运行
挑战在于脚本需要能够在 Mac 或 Windows 上运行,但不知道它是哪一个。由于 cmd.exe
、the default sHell used by npm run
under windows 中的脚本似乎非常有限,而且 cmd.exe
和 /bin/sh
所理解的语言的交集(Mac 下的默认设置)似乎几乎是空的,我认为您最好赌注是直接进入 node
进行脚本编写。这是如何工作的示例:
{
...
"build_win32": "rmdir /s && build && ...","build_darwin": "rm -rf && build && ...","build": "node -e \"child_process.exec(`npm run build_${os.platform()}`)\""
}
,
最简单的方法可能是使用 shx,它可以在任何平台上运行 Unix 命令。
"scripts": {
"copyindex": "shx cp src/index.html build"
// ...
},"devDependencies": {
"shx": "latest"
}
或者,您也可以安装提供单个命令的单独软件包,例如 Copyfiles 代表 cp
,rimraf 代表 rm -rf
等。其中有很多.
另一种方法是直接用 Javascript 编写这些脚本并使用 Node.js 运行它们。当您的脚本很长时,这可以说是更好的解决方案。它还不需要您依赖任何额外的包来运行您的脚本。
copyindex
的示例:
#!/usr/bin/env node
const fs = require("fs")
fs.copyFileSync("src/index.html","build/index.html")
在你的 package.json 中:
"scripts": {
"copyindex": "node scripts/copyindex.js",// ...
}
以上是大佬教程为你收集整理的将 package.json 脚本从 mac 更改为 windows全部内容,希望文章能够帮你解决将 package.json 脚本从 mac 更改为 windows所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。