nswbmw/config-lite

windows下环境变量的一个问题

pengloo53 opened this issue · 2 comments

"winTest": "SET NODE_ENV=test && supervisor --harmony -i views/ ./bin/www"

package.json里写了这么一条启动命令,使用config-lite会自动找到test配置文件,但是运行的时候总是报错找不到文件:

config-lite load "test " failed.
Error: Cannot find module 'test ' from 'F:\Git\B1IMD'
    at Function.module.exports [as sync] (F:\Git\B1IMD\node_modules\config-lite\node_modules\resolve\lib\sync.js:40:15)
    at loadConfigFile (F:\Git\B1IMD\node_modules\config-lite\index.js:51:26)
    at configLite (F:\Git\B1IMD\node_modules\config-lite\index.js:34:16)
    at Object.<anonymous> (F:\Git\B1IMD\app.js:8:36)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)

最后发现是环境变量传参的问题,说来也奇怪,环境变量设置的test,但是传到config-lite里却变成了test.,后面多了一个点,所以导致文件找不到,调试时把点去掉就没问题了,不知道为啥?

(Mac环境下没有问题)

可能你代码里改动了 NODE_ENV ?再确定下是哪的问题

后面多的是个空格,把启动命令改成

"winTest": "SET NODE_ENV=test&& supervisor --harmony -i views/ ./bin/www"

就没问题了,也是醉了。