Plugins Aurelia从具有外部依赖性的插件绑定组件

Plugins Aurelia从具有外部依赖性的插件绑定组件,plugins,module,bundle,aurelia,Plugins,Module,Bundle,Aurelia,我很难用Aurelia绑定一个用typescript编写的自定义插件。它似乎总是从node_模块获取类。如果它起作用的话,我可以接受它,但后来我意识到,所有使用外部库的组件都从未加载过。 例如,我有一个对话框组件,它利用了aurelia dialog,但从未加载,而且控制台上没有错误或任何东西,即使在我将其从/src文件夹移动到外部插件之前,该组件运行良好 作为参考,typescript编译生成的index.js如下所示: define(["require", "exports", ".

我很难用Aurelia绑定一个用typescript编写的自定义插件。它似乎总是从node_模块获取类。如果它起作用的话,我可以接受它,但后来我意识到,所有使用外部库的组件都从未加载过。 例如,我有一个对话框组件,它利用了aurelia dialog,但从未加载,而且控制台上没有错误或任何东西,即使在我将其从/src文件夹移动到外部插件之前,该组件运行良好

作为参考,typescript编译生成的index.js如下所示:

    define(["require", "exports", "./ui/dialog-box", "./ui/message-box", "./attributes/active"], function (require, exports, dialog_box_1, message_box_1, active_1) {
    "use strict";
    exports.DialogBox = dialog_box_1.DialogBox;
    exports.MessageBox = message_box_1.MessageBox;
    exports.ActiveCustomAttribute = active_1.ActiveCustomAttribute;
    function configure(config) {
        config.globalResources(['./ui/empty-state', './ui/tool-bar']);
    }
    exports.configure = configure;
});
//# sourceMappingURL=index.js.map
供应商包下my aurelia.json中的include如下所示:

{ 姓名:sam aurelia, 路径:../node_modules/sam aurelia/src, 主要:索引 }

所以我的问题是: 有人知道当这些组件来自插件时,是什么导致它们无法加载吗

奖金问题:

如何调试此类问题? 为什么我的组件是从node_模块获取的,而不是捆绑在供应商捆绑包中? 是否有一种简单的方法可以在开发过程中禁用绑定,以加快“编译”时间并简化调试? 谢谢

编辑以解释我的解决方案

抱歉,我还没有绑定禁用或加载调试的解决方案。正如下面的回答中所述,在aurelia.json中我的bundle配置中将“stub”选项设置为“true”,可以阻止html/css文件的绑定。添加glob来加载这些文件似乎也有帮助。 第二个问题是我没有导出插件索引中的一些组件。当我为这些组件添加导出时,html文件已正确绑定。 最后,与这些包含外部插件的最后文件相关。我注意到浏览器试图从node_modules/plugin/src/index.html加载html模板。我想这是因为它们是通过索引文件公开的,所以aurelia试图获取与索引相关的模板。将这些文件添加到globalresources解决了这个问题,尽管我不知道确切原因


我现在可以走了,不过我可能会花一些时间将代码放在单独的模块中,看看是否真的需要将组件添加到globalresources…

任何全局资源都需要导出以进行跟踪、清空状态和工具栏。 如果您有非js文件,则需要将它们添加到aurelia.json中的资源数组中:

{
    "name": "sam-aurelia",
    "path": "../node_modules/sam-aurelia/src",
    "main": "index",
    "resources": ["**/*.{html,css}"]
}
而且:

"stub": false

谢谢你,拉巴。“存根”选项的用途是什么?现在看来,我的html文件已正确绑定,但js文件仍在从node_模块获取。此外,我还有一个html文件,在获取时会抛出404错误,因为它试图获取名为/node_modules/plugin/src/index.html的文件,而不是src/ui/dialog.html下的文件…将stub设置为true不包括文本插件,因此无法加载动态文本文件。谢谢Rabah。我编辑了我的问题来解释我完全解决问题的步骤,但是你的回答让我走上了正轨。。。