本文概述
许多开发人员使用开源插件和项目来加快其项目的开发过程。有时, 其中许多项目是在基于UNIX的平台上制作的(并非每个人都使用Windows, 我的朋友), 因此, 当你下载用Node.js和类似NPM的工具制作的项目时, 在使用它时会发现一些问题。与最初制作时不同的平台。
在这种情况下, 如果看到NPM错误” cp”未被识别为内部或外部命令, 则说明该项目肯定是在Mac, Linux等系统中开发的。例如, 如果你尝试运行以下脚本的build命令( package.json):
{
/* Rest of your package.json file */
"scripts": {
"build": "babel-node -- node_modules/webpack/bin/webpack -p --config tools/webpack.config && cp demo\\assets\\js\\form-* dist\\", }, /* Rest of your package.json file */
}
由于cp命令在Windows中不存在, 因此它将在Windows中引发异常。
解决方案1
幸运的是, 该问题仅仅是Windows与基于Unix的系统之间的语法不兼容, 因此, 手动更改带有copy的cp命令将解决此问题:
{
/* Rest of your package.json file */
"scripts": {
"build": "babel-node -- node_modules/webpack/bin/webpack -p --config tools/webpack.config && copy demo\\assets\\js\\form-* dist\\", }, /* Rest of your package.json file */
}
现在, 先前的命令应该可以在Windows中使用。唯一的问题是项目的可维护性, 因为在Windows中工作时始终需要更改此项目, 但是如果仅为你工作或不打算对Windows的原始存储库进行任何更改, 它将很方便该项目。
解决方案2
你也可以在Windows上安装Cygwin, 以提供对” cp”命令的支持。 Cygwin是GNU和开放源代码工具的大集合, 它们提供的功能类似于Windows上的Linux发行版。到本文发布之日为止, Cygwin DLL的最新版本为2.9.0。通过运行setup-x86.exe(32位安装)或setup-x86_64.exe(64位安装)进行安装。使用安装程序执行全新安装或更新现有安装。
安装Cygwin后, 关闭命令提示符并重新启动它, 将使你可以使用unix的cp命令运行build命令而不会出现问题, 因此你无需手动修改package.json文件。
编码愉快!