Javascript NPM环境变量在windows中不工作?
在我的package.json文件中,我尝试使用版本控制编译更少的代码,如下所示:Javascript NPM环境变量在windows中不工作?,javascript,json,node.js,windows,npm,Javascript,Json,Node.js,Windows,Npm,在我的package.json文件中,我尝试使用版本控制编译更少的代码,如下所示: "scripts" { ... "build:css": "lessc --source-map css/index.less build/$npm_package_name.$npm_package_version.css", ... } C:\try\x>npm test > x@1.0.0 test C:\try\x > echo %npm_package_name%.%npm_pac
"scripts" {
...
"build:css": "lessc --source-map css/index.less build/$npm_package_name.$npm_package_version.css",
...
}
C:\try\x>npm test
> x@1.0.0 test C:\try\x
> echo %npm_package_name%.%npm_package_version%.css
x.1.0.0.css
问题是输出文件返回为
$npm_package_name.$npm_package_version.css
而不是
my-project.1.0.0.css
我读过你能做到的
%npm_package_name%.%npm_package_version%.css
但这对我不起作用
有人知道为什么变量不起作用吗?这些变量在Windows中工作吗?如果是这样,我如何使它们工作?此package.json适用于我在Windows 10上的工作:
{
"name": "x",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "Unlicense"
}
但是请注意,环境变量替换发生在NPM回显它之后,因此输出如下所示:
"scripts" {
...
"build:css": "lessc --source-map css/index.less build/$npm_package_name.$npm_package_version.css",
...
}
C:\try\x>npm test
> x@1.0.0 test C:\try\x
> echo %npm_package_name%.%npm_package_version%.css
x.1.0.0.css
要使其跨平台,请使用:
“脚本”{
...
“build:css”:“cross-var-lessc——源映射css/index.less build/$npm_package_name.$npm_package_version.css”,
...
}
问题是什么?为什么变量不工作/变量在Windows中工作/我如何使它们工作?问题中更新了我认为您最好使用gulp
并使用process.env
获取环境变量,而不是在您的包中使用依赖操作系统的脚本。json
是的,通常我使用的是Grunt,但对于这个项目,我特别需要使用npm。如果有解决此问题的方法,那就太好了。如果使用cmd.exe作为shell,则%variable%格式是正确的。当你使用它时会发生什么?啊,是的,非常有用。问题是我使用的是git bash(基于unix)而不是cmd.exe。干杯