NodeJS 无法在Windows的NPM脚本中使用mkdir

3df52oht  于 12个月前  发布在  Node.js
关注(0)|答案(4)|浏览(119)

我想写一个像这样的脚本:

{
    "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


如果这不起作用,有没有跨平台友好的方法来初始化一个空目录?

oxiaedzo

oxiaedzo2#

您可以将npxplusmkdirp用于相对轻量级、可移植的解决方案,而无需全局安装
将此添加到package.json

"scripts": {
  "create-dir": "npx mkdirp _site/assets",
}

字符串
然后像这样使用:

$ npm run create-dir

ttcibm8c

ttcibm8c3#

Npm使用的是windows mkdir命令,而不是Linux。使用

"setup": "mkdir .\\my-dir"

字符串
请使用反斜扛
您也可以安装cygwin并运行:

/cygwin64/bin/mkdir -p mydir

k5ifujac

k5ifujac4#

当在Windows上执行命令而不是使用其mkdir版本时,我使用Git Bash并将其设置为npm中的默认shell:

npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"

字符串

相关问题