3

I'm using npm run to build a javascript file through browserify. Before building, I would like it to create a directory in my build folder, named after the version listed in the package.json. Here is a trimmed example of 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"
  }
}

The code executed in prebuild is:

mkdir -p build/$npm_package_version

But I want it to execute

mkdir -p build/0.0.0-pre-alpha

What am I doing wrong?

LongInt
  • 1,739
  • 2
  • 16
  • 29

1 Answers1

4

Update: Turns out you can't use arguments with mkdir in a script. So i ended up using the mkdirp npm module.

Old post:

For others looking for an answer: Turns out when you are working in windows the correct way to use the variables is

%npm_package_version%

So the final code should look like:

"prebuild": "mkdir -p build/%npm_package_version%"
LongInt
  • 1,739
  • 2
  • 16
  • 29
  • Hey, know it's been a while, but I tried this on my windows machine and both solutions didn't work. Do you know what is wrong? –  Nov 03 '16 at 00:26
  • It worked by using the mkdirp module for me. Here is the working code: "mkdirp build/%npm_package_version%/js" – LongInt Nov 06 '16 at 12:24