2016-11-03 45 views
2

在我的package.json文件我試圖使用版本編譯的代碼更少,像這樣:NPM環境變量不能在Windows工作?

"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中,這些變量是否可以工作?如果是這樣,我如何讓他們工作?

+0

這是什麼問題? –

+0

爲什麼不變量的工作/做變量工作在Windows /我該如何使他們的工作?在這個問題 – aaronmcavinue

+0

我認爲這將是最適合你使用'gulp'並獲得ENV變量與'process.env',而不是在具有OS相關腳本更新你的'package.json' – BrunoLM

回答

1

這的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 

> [email protected] test C:\try\x 
> echo %npm_package_name%.%npm_package_version%.css 

x.1.0.0.css 
+0

啊,是的,非常有幫助。問題是我使用的是git bash(基於unix)而不是cmd.exe。乾杯! – aaronmcavinue

1

爲了讓跨平臺,使用cross-var

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