Aurelia 如何在ES6中创建插件(无构建系统)

Aurelia 如何在ES6中创建插件(无构建系统),aurelia,Aurelia,我正试图将我的一个Aurelia自定义元素移动到它自己的Git repo中,这样我就可以npm安装它并在多个项目中使用它 我希望只提交元素包含的一个JS文件(它使用@inlineView)(以及包.json)并将其导入Aurelia,所以我做了: $npm安装PowerBucket/my插件名 在aurelia.json 将use.plugin('my-plugin-name')添加到main.js(我还尝试了globalResources()和feature())(我还尝试了。/node\u模

我正试图将我的一个Aurelia自定义元素移动到它自己的Git repo中,这样我就可以
npm安装它并在多个项目中使用它

我希望只提交元素包含的一个JS文件(它使用
@inlineView
)(以及
包.json
)并将其导入Aurelia,所以我做了:

  • $npm安装PowerBucket/my插件名
  • aurelia.json
  • use.plugin('my-plugin-name')
    添加到
    main.js
    (我还尝试了
    globalResources()
    feature()
    )(我还尝试了
    。/node\u模块/my plugin name/index
  • 似乎什么都不管用

    我的插件代码不能是ES6是正确的吗?在我把它包括在我的项目中之前,它必须被传输吗?如果这是正确的,有人能解释为什么需要这样做,以及是否有解决办法吗


    只需将一个文件移动到它自己的repo,而不是为一个文件设置一个全新的框架应用程序,这会容易得多。

    您的插件在很大程度上可以是ES2015。主要的例外是,您不能使用
    导入
    模块语法,因为任何浏览器都不支持这种语法。这也意味着插件使用的
    导出类
    语法不受支持


    因此,至少,您需要将插件转换为CommonJS或AMD模块格式。如果您只使用支持ES2015的浏览器,并且只使用浏览器本机支持的功能,那么您可以本机运行ES2015代码,除了上面提到的模块内容。

    您的插件大部分可以是ES2015。主要的例外是,您不能使用
    导入
    模块语法,因为任何浏览器都不支持这种语法。这也意味着插件使用的
    导出类
    语法不受支持


    因此,至少,您需要将插件转换为CommonJS或AMD模块格式。如果您只使用支持ES2015的浏览器,并且只使用浏览器本机支持的功能,那么您可以本机运行ES2015代码,并保存上面提到的模块内容。

    Ok,那么没有办法让使用插件的my Aurelia项目在使用前进行传输吗?好像它和我的其他代码都在同一个目录中。我几乎想用Git子模块来解决这个问题(因为这样插件就只是我的普通代码的一部分,默认情况下包含在它的包中),通常情况下,不,你不会有一个消费项目来处理插件的透明化。也就是说,您应该能够在
    node\u模块
    jspm\u包
    文件夹中传输它。这并不容易,因为您试图做一些事情,无论是Aurelia CLI、Webpack还是JSPM/Gulp,工具都不容易。为什么不愿意分发预先传输的插件?你知道,你可以将预先传输的插件分发成任意数量的格式,消费者可以选择使用哪种格式,对吗?是的,最大的原因是我不想再维护另一个构建系统。我不想让我的一个文件,~50loc插件变成一个20文件20+依赖的庞然大物:P我希望它不需要更多的东西,只需要将
    元素/my custom element.js
    移动到node\u modules/。我想我会调查传输文件所需的最低限度。插件框架包含了太多我不喜欢的东西。好吧,那么没有办法让我的使用插件的Aurelia项目在使用之前进行传输?好像它和我的其他代码都在同一个目录中。我几乎想用Git子模块来解决这个问题(因为这样插件就只是我的普通代码的一部分,默认情况下包含在它的包中),通常情况下,不,你不会有一个消费项目来处理插件的透明化。也就是说,您应该能够在
    node\u模块
    jspm\u包
    文件夹中传输它。这并不容易,因为您试图做一些事情,无论是Aurelia CLI、Webpack还是JSPM/Gulp,工具都不容易。为什么不愿意分发预先传输的插件?你知道,你可以将预先传输的插件分发成任意数量的格式,消费者可以选择使用哪种格式,对吗?是的,最大的原因是我不想再维护另一个构建系统。我不想让我的一个文件,~50loc插件变成一个20文件20+依赖的庞然大物:P我希望它不需要更多的东西,只需要将
    元素/my custom element.js
    移动到node\u modules/。我想我会调查传输文件所需的最低限度。插件框架包含了太多我不喜欢的东西。