【问题标题】:How to use curly brackets in npm scripts?如何在 npm 脚本中使用大括号?
【发布时间】:2015-08-17 20:53:59
【问题描述】:

我想在一个名为 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 是主要目标。

【问题讨论】:

    标签: node.js npm mkdir


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回复。但我们又回到了原点!我想使用大括号和 os 互操作性在这里不是一个大问题。我现在将更新问题。
    【解决方案2】:

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

    以下可能会起作用,但未经测试:

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

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

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

    在执行之前。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-17
      • 1970-01-01
      • 2015-01-02
      • 1970-01-01
      • 2016-11-12
      • 1970-01-01
      相关资源
      最近更新 更多