我正在尝试编写一个如下所示的脚本:
{
"scripts":
"setup": "mkdir -p ./my-dir"
}
它会失败,至少在 Windows 上,即使我从 Git Bash 提示符运行它也是如此。即使只是尝试
mkdir ./my-dir
也是行不通的。我想不出任何失败的原因。
它给出的错误是“语法不正确”错误:
> [email protected] stage C:\my-app
> mkdir ./my-dir
The syntax of the command is incorrect.
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "stage"
npm ERR! node v6.4.0
npm ERR! npm v3.10.3
npm ERR! code ELIFECYCLE
npm ERR! [email protected] stage: `mkdir ./my-dir`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] stage script 'mkdir ./my-dir'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the my-app package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! mkdir ./my-dir
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs my-app
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls my-app
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! C:\my-app\npm-debug.log
如果这不起作用,是否有跨平台友好的方法来初始化空目录?
这个模块可能会解决您的问题: https://www.npmjs.com/package/mkdirp
Npm 使用的是 Windows mkdir 命令,而不是 Linux。使用
"setup": "mkdir .\\my-dir"
使用反斜杠。
您还可以安装 cygwin 并运行:
/cygwin64/bin/mkdir -p mydir
在 Windows 上执行命令而不是使用其版本的
mkdir
时,我所做的是使用 Git Bash 并将其设置为 NPM 中的默认 shell:
npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"