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

时间:2015-06-03 14:52:51

标签: node.js npm mkdir

我想在名为prepare_build的npm脚本中运行这个简单的命令:

...
scripts: {
  "prepare_build" : "mkdir -p dist/lib/{js,css}"
}
...

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

我在这里做错了什么?

注意:

  • 我知道Gulp,Grunt和其他我不想使用的构建系统
  • 此处不关注操作系统互操作性。 Linux是主要目标。

2 个答案:

答案 0 :(得分:4)

<a ui-sref="parent"> <a ui-sref="parent.child1"> <a ui-sref="parent.child2"> 语法既不是mkdir的功能,也不是OS的功能。它是你shell的一个特性(可能是bash)。因此,为了解释它,您需要执行一个可以理解该语法的shell。

以下内容可能有效,但尚未经过测试:

{js,css}

执行bash,将命令转换为:

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

在执行之前。

答案 1 :(得分:0)

使用npm脚本时,往往会出现某些怪癖,特别是在尝试创建适用于Win,Linux和Mac的npm脚本时。找到变通方法往往是最务实的。在您的情况下,我建议您安装mkdirp package npm install mkdirp --save-dev,然后以下内容将有效:

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