2015-06-03 47 views
0

我想在名爲prepare_build的NPM腳本運行這個簡單的命令:如何在npm腳本中使用大括號?

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

運行npm run prepare_build將創建一個目錄dist/lib/{js,css}而在控制檯中運行命令將創建兩個dist/lib/jsdist/lib/css

我在這裏做錯了什麼?

注:

  • 我知道咕嘟咕嘟,咕嚕,和其它構建系統的,我不希望使用
  • OS互操作性是一個令人關注的不是在這裏。 Linux是主要目標。

回答

2

的語法既不是MKDIR的一個特徵,也不是操作系統的一項功能。這是你的shell的功能(可能是bash)。所以爲了解釋它,你需要執行一個可以理解語法的shell。

下可能會工作,但沒有經過測試:

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

該執行的bash其變換成命令:

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

在執行前。

0

當使用npm腳本時,往往會出現某些怪癖,特別是在嘗試創建適用於Win,Linux和Mac的npm腳本時。找到解決方法通常是最務實的。在你的情況我建議安裝mkdirp packagenpm install mkdirp --save-dev,然後下面的工作:

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

感謝您的回覆。但我們已經回到了原點!我想利用花括號和操作系統互操作性在這裏不是一個大問題。我現在會更新這個問題。 –

相關問題