I am building a package.json and use "npm run" to run some scripts, to be exactly, https://docs.npmjs.com/misc/scripts.
My script would need to expand some environment variables and I want to make it cross platform compatible. For example, my script would say
"scripts": {
"build": "md %npm_package_version%\helloworld"
}
But it's currently running on Windows because the expansion of environment variables. Linux would use md $npm_package_version\helloworld
.
Does npm
comes with a mechanism to convert environment variables expansion so that it works across platforms?
npm
doesn't appear to have a cross platform way to expand environment variables, but you do have node at your disposal, so I'd recommend implementing all your scripts as node scripts, then you can accessprocess.env
and cross-platform filesystem functions, likemkdirSync
.package.json
utils/mkdir.js
To make it cross-platform, use
cross-var
: