如何在 npm 脚本中使用大括号?

How to use curly brackets in npm scripts?

我想 运行 在名为 prepare_build:

的 npm 脚本中执行这个简单的命令
...
scripts: {
  "prepare_build" : "mkdir -p dist/lib/{js,css}"
}
...

运行ning npm run prepare_build 将创建一个目录 dist/lib/{js,css} 而 运行ning 在控制台中的命令将同时创建 dist/lib/jsdist/lib/css.

我做错了什么?

注:

使用 npm 脚本时往往会出现某些问题,尤其是在尝试创建适用于 Win 的 npm 脚本时,Linux 和 Mac。找到解决方法通常是最务实的。在你的情况下,我建议安装 mkdirp package npm install mkdirp --save-dev 然后下面的将起作用:

scripts: {
  "prepare_build" : "mkdirp dist/lib/js dist/lib/css"
}

{js,css} 语法既不是 mkdir 的特性,也不是 OS 的特性。这是您 shell(可能 bash)的一个特征。因此,为了解释它,您需要执行可以理解该语法的 shell。

以下可能有效但未经测试:

scripts: {
  "prepare_build" : "bash -c 'mkdir -p dist/lib/{js,css}'"
}

这会执行 bash,将命令转换为:

mkdir -p dist/lib/js dist/lib/css

在执行之前。