Javascript sencha应用程序生成生产后外部库不工作

Javascript sencha应用程序生成生产后外部库不工作,javascript,sencha-cmd,extjs6-classic,extjs6.2,Javascript,Sencha Cmd,Extjs6 Classic,Extjs6.2,我在app.json中添加我的外部库: "js": [ { "path": "app.js", "bundle": true }, { "path": "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js", "remote": true }, { "path": "https://rawgit.c

我在app.json中添加我的外部库:

"js": [
    {
        "path": "app.js",
        "bundle": true
    },
    {
        "path": "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js",
        "remote": true

    },
    {
        "path": "https://rawgit.com/darron1217/enjoyhint.js/master/dist/enjoyhint.js",
        "remote": true
    }
],

当我使用sencha app watch时,一切正常,但当我在生产环境中构建项目时,浏览器中出现错误:未捕获引用错误:EnjoyHint未定义。

在app.js之前,您应该需要额外的资源

在开发模式中,额外的资源以某种方式在依赖它们的类之前被加载。在生产模式下,app.js文件将成为所有具体类的容器,如果您在加载其他资源之前加载它,则会出现引用错误

编辑Mashup混合方法

关于额外资源加载,我非常喜欢的另一种方法是使用mixin

此mixin允许用户在其应用程序中轻松地需要外部脚本 上课。此加载过程会延迟应用程序启动Ext.onReady 直到加载所有这样的脚本,确保您的类 从一开始就可以访问所需的脚本

基本用法:

Ext.define('EnjoyHint', {
    mixins: ['Ext.mixin.Mashup'],

    requiredScripts: [
        'https://rawgit.com/darron1217/enjoyhint.js/master/dist/enjoyhint.js'
    ],
    ...
});

正如您可能注意到的,这种方法提供的另一件事情是,它允许您直接在使用它的类内部指定外部依赖关系。这样,如果您不再需要某个类并将其删除,您就不必担心重新检查app.json文件以确保留下任何未使用的依赖项。

非常奇怪,几天前我遇到了同样的问题,资源重新排序也有帮助。我已经用另一种解决方案更新了我的答案。看看这个是否有用。
Ext.define('EnjoyHint', {
    mixins: ['Ext.mixin.Mashup'],

    requiredScripts: [
        'https://rawgit.com/darron1217/enjoyhint.js/master/dist/enjoyhint.js'
    ],
    ...
});