在我的ember-cli-build.js
文件中,我正在使用app.import('vendor/new-relic.js')
导入一个名为new-relic
的供应商库,我想将一个名为env
的参数传递给new-legacy供应商文件,并在new-relic.js
文件中使用它。app.import('vendor/new-relic.js', { env: 'production' });
当我尝试在vendor文件中控制台日志env
时,它显示为undefined
。有没有办法将env传递到vendor文件?
1条答案
按热度按时间jgwigjjp1#
当您对供应商文件执行
app.import
时,它不会在生成时在与ember-cli-build.js
相同的节点环境中执行,而是在运行时在用户的浏览器中执行,因此无法将环境作为参数传递。然而,Ember会以如下方式自动使环境在浏览器中可用。这就是你如何在初始化器中的window对象上设置它:
这将使环境在你的ember应用程序启动时在窗口对象上可用。如果你的供应商文件在那时访问它,这将起作用。
然而,这可能还不够早。您可能需要在浏览器读取new-relic.js文件后立即使用
env
变量。为了处理这样的用例,您可能需要在插件中使用contentFor
钩子。已经有一个很好的插件可以实现这一点:ember-cli-content-for-config
。使用它,您可以将以下内容添加到您的index.html
:请在此处查看该插件的自述文件:https://github.com/bmac/ember-cli-content-for-config
您还需要修改new-relic.js以在全局名称空间(窗口对象)中查找
env
变量。