NPM环境变量在Windows中不起作用?

时间:2016-11-03 00:34:01

标签: 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",
...
}

问题是输出文件以

的形式返回
$npm_package_name.$npm_package_version.css

而不是

my-project.1.0.0.css

我已经知道你可以做到

%npm_package_name%.%npm_package_version%.css

但这对我没用。

任何人都知道变量为什么不起作用?这些变量在Windows中是否完全有效?如果是这样,我如何让它们工作?

2 个答案:

答案 0 :(得分:1)

要使其跨平台,请使用cross-var

"scripts" { ... "build:css": "cross-var lessc --source-map css/index.less build/$npm_package_name.$npm_package_version.css", ... }

答案 1 :(得分:0)

这个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回显之后,因此输出如下所示:

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