在npm脚本中使用package.json变量

在npm脚本中使用package.json变量,npm,package.json,npm-run,Npm,Package.json,Npm Run,我正在使用npm run通过browserify构建一个javascript文件。在构建之前,我希望它在我的构建文件夹中创建一个目录,以package.json中列出的版本命名。下面是my package.json的一个示例: { "name": "My App", "version": "0.0.0-pre-alpha", "description": "App desc", "main": "index.js", "dependencies": { "browse

我正在使用npm run通过browserify构建一个javascript文件。在构建之前,我希望它在我的构建文件夹中创建一个目录,以package.json中列出的版本命名。下面是my 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
我做错了什么?

更新: 事实证明,在脚本中不能将参数与mkdir一起使用。所以我就用了这个

旧帖子:

对于其他正在寻找答案的人:当您在windows中工作时,正确使用变量的方法是

%npm_package_version%
因此,最终的代码应该如下所示:

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

嘿,我知道已经有一段时间了,但是我在我的windows机器上尝试了这个,但两种解决方案都不起作用。你知道怎么回事吗?我使用mkdirp模块就成功了。下面是工作代码:“mkdirp build/%npm\u package\u version%/js”