Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript NPM环境变量在windows中不工作?_Javascript_Json_Node.js_Windows_Npm - Fatal编程技术网

Javascript NPM环境变量在windows中不工作?

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

在我的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_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。干杯