2016-07-31 212 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