Ember.js Ember cli插件开发,如何区分插件开发和应用程序开发

Ember.js Ember cli插件开发,如何区分插件开发和应用程序开发,ember.js,node.js-addon,Ember.js,Node.js Addon,当您创建一个ember cli插件时,您应该能够运行一个虚拟应用程序 如果组件需要访问其供应商文件夹,则可以访问生产中的“public/”。 开发使用您访问的插件的ember应用程序时: app.options.project.nodeModulesPath+“/”+this.name+“/vendor/” 但是,当您运行ember cli加载项服务器(虚拟应用程序)时,您只需要“vendor/” this.getEnv()在开发插件或使用该插件的应用程序时将返回developpement 如何

当您创建一个ember cli插件时,您应该能够运行一个虚拟应用程序

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

app.options.project.nodeModulesPath+“/”+this.name+“/vendor/”

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

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


如何在
index.js
中区分应用程序开发和插件开发?

假设我们在
包含的
钩子中,您可以检查
this.isAddon()
以确定您现在在哪里。假设您现在在consumer ember应用程序中,您可以调用
path.dirname(require.resolve('ADDON\u NAME/package.json'))
来获取您的ember插件的绝对路径

需要注意的一点是,
this.isAddon()
可能不是一个公共API(尽管它足够稳定,但仍然没有在API文档中列出)。如果您关心这个问题,可以使用
this.parent.name()
来实现相同的目标,当您使用虚拟应用程序运行时,
this.parent.name()
始终返回
dummy


顺便说一句,
this.parent
app.project
相同,其中
app
included
hook的第一个参数。

假设我们在
included
hook中,您可以检查
this.isAddon()
来确定您现在在哪里。假设您现在在consumer ember应用程序中,您可以调用
path.dirname(require.resolve('ADDON\u NAME/package.json'))
来获取您的ember插件的绝对路径

需要注意的一点是,
this.isAddon()
可能不是一个公共API(尽管它足够稳定,但仍然没有在API文档中列出)。如果您关心这个问题,可以使用
this.parent.name()
来实现相同的目标,当您使用虚拟应用程序运行时,
this.parent.name()
始终返回
dummy

顺便说一句,
this.parent
app.project
相同,其中
app
included
hook的第一个参数