Ember-cli Addon开发人员,如何将Addon开发人员与应用开发人员区分开

时间:2018-08-30 16:38:34

标签: ember.js node.js-addon

创建ember-cli插件时,应该能够运行虚拟应用程序。

如果组件需要访问其供应商文件夹,则可以在生产环境中访问“ public /”。 在开发使用插件的余烬应用程序时,您可以访问:

app.options.project.nodeModulesPath + "/"+ this.name+"/vendor/"

但是,当您运行ember-cli附加服务器(虚拟应用程序)时,您仅需要“ vendor /”。

this.getEnv()将在开发插件或使用插件的应用程序时返回developpement

如何在index.js中区分app开发与addon开发?

1 个答案:

答案 0 :(得分:2)

假设我们在included钩中,则可以检查this.isAddon()以确定您现在的位置。假设您现在处于消费者余烬应用程序中,则可以调用path.dirname(require.resolve('ADDON_NAME/package.json'))来获取余烬插件的绝对路径。

需要注意的一点是,this.isAddon()可能不是公共API(尽管足够稳定,但仍未在API文档中列出)。如果您对此有所担心,则可以使用this.parent.name()来达到相同的目标,当您与虚拟应用程序一起运行时,this.parent.name()总是返回dummy

顺便说一句,this.parentapp.project是同一件事,其中appincluded钩子的第一个参数。