在ember serve
中注销environment
变量时运行config/environment.js
时,我看到记录了三个值:
undefined
development
test
(这是在继承的项目中。)
在使用ember new my-app
创建的新应用中,我还看到了三个值:
development
test
development
这使我相信我继承的项目正在test
模式下运行,而一个新项目正在development
模式下运行,就像我期望的那样。
运行ember serve --environment=development
不会更改在继承的项目中观察到的行为。
我的问题是,为什么在运行ember serve
时会看到记录三个值?如何确定开发环境为什么在test
中运行?
答案 0 :(得分:0)
在配置函数中,调用project.config(environment)
的是指示environment
参数的原因。如果有任何人在不带参数的情况下调用此函数,那么您将看到undefined
。
要确定为什么在测试模式下运行,我会尝试在编辑器中抛出调试器语句(如果可能),然后查看用"test"
调用它的含义。如果那不可能,请尝试在函数中的某个位置打印调用堆栈:
module.exports = function(environment) {
...
console.log('current environment: ', environment);
console.log(new Error().stack);
}
您会看到类似的内容:
CURRENT ENVIRONMENT: development
Error
at module.exports (.../config/environment.js:73:15)
at Project.configWithoutCache (.../node_modules/ember-cli/lib/models/project.js:273:47)
at Project.config (.../node_modules/ember-cli/lib/models/project.js:257:21)
at Watcher.module.exports [as serveURL] (.../node_modules/ember-cli/lib/utilities/get-serve-url.js:6:24)
at Watcher.didChange (.../node_modules/ember-cli/lib/models/watcher.js:51:40)
at Watcher.emit (events.js:187:15)
at Watcher.triggerChange (.../node_modules/ember-cli-broccoli-sane-watcher/index.js:174:8)
at tryCatcher (.../node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:323:19)
at invokeCallback (.../node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:495:31)
at publish (.../node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:481:7)
at flush (.../node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:2402:5)
at process._tickCallback (internal/process/next_tick.js:61:11)
您可以返回工作地点,以了解环境的设置(在本例中为ember-cli
)。