mkdir -p 在 Windows 上的 package.json 脚本中不起作用

Vas*_*liy 4 mkdir node.js package.json

假设我们有一个 React 应用程序,并且在 package.json 中有一个脚本:

"scripts": {
    "create-images-dir": "mkdir -p distrib/images"
}
Run Code Online (Sandbox Code Playgroud)

如果通过npm run create-images-dir在 Linux 上运行这个脚本,它工作正常。但是尝试在git-bashCygwin终端的Windows 环境中运行它,我收到此错误:

The syntax of the command is incorrect.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! Exit status 1
Run Code Online (Sandbox Code Playgroud)

设置--parents而不是-p. 没有-p参数,它可以工作,所以它偶然发现了-p. 但与此同时,如果在终端中手动输入,脚本中的命令可以正常工作:

mkdir -p distrib/images
Run Code Online (Sandbox Code Playgroud)

对我来说,当命令从脚本转换为执行时,或者在 Windows 上对嵌套目录的不同处理时,看起来好像发生了一些符号转义,但我不知道它到底是什么。难道我做错了什么?

dmf*_*fay 5

这就是mkdirp包存在的原因——将其添加为开发依赖项并mkdirp在脚本中使用二进制文件而不是特定于平台的mkdir.