程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了将 package.json 脚本从 mac 更改为 windows大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决将 package.json 脚本从 mac 更改为 windows?

开发过程中遇到将 package.json 脚本从 mac 更改为 windows的问题如何解决?下面主要结合日常开发的经验,给出你关于将 package.json 脚本从 mac 更改为 windows的解决方法建议,希望对你解决将 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,请注明来意。