Ember.js Ember cli插件开发,如何区分插件开发和应用程序开发
当您创建一个ember cli插件时,您应该能够运行一个虚拟应用程序 如果组件需要访问其供应商文件夹,则可以访问生产中的“public/”。 开发使用您访问的插件的ember应用程序时: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 如何
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的第一个参数