2016-07-31 213 views
1

我使用npm run通過browserify構建一個JavaScript文件。在構建之前,我希望它在我的build文件夾中創建一個目錄,並以package.json中列出的版本命名。這裏是我的package.json的修剪例如:在npm腳本中使用package.json變量

{ 
    "name": "My App", 
    "version": "0.0.0-pre-alpha", 
    "description": "App desc", 
    "main": "index.js", 
    "dependencies": { 
    "browserify" : "*", 
    } 
    "scripts": { 
    "prebuild": "mkdir -p build/$npm_package_version", 
    "browserify" : "browserify ./src/index.js ./build/$npm_package_version/js/myapp-$npm_package_version.js", 
    "build" : "npm run prebuild && npm run browserify" 
    } 
} 

在預生成執行的代碼是:

mkdir -p build/$npm_package_version 

但我想它來執行

mkdir -p build/0.0.0-pre-alpha 

我在做什麼錯?

回答

2

更新: 原來你不能在腳本中對mkdir使用參數。所以我結束了使用mkdirp npm module

舊文章:

對於其他人尋找一個答案:原來,當你在Windows中使用變量的正確方法工作是

%npm_package_version% 

所以最終代碼看起來應該像:

"prebuild": "mkdir -p build/%npm_package_version%" 
+0

嘿,知道這已經有一段時間了,但我在我的Windows機器上試過這兩種解決方案都無法工作。你知道什麼是錯的嗎? – aaronmcavinue

+0

它通過使用mkdirp模塊爲我工作。這裏是工作代碼:「mkdirp build /%npm_package_version%/ js」 – LongInt