在 extjs 项目中使用 Moment.js

Use Moment.js in extjs project

我正在使用 6.5.2 版本和现代工具包开发一个 Extjs 项目,我想使用 https://momentjs.com/ 包,但我无法导入 node_dependency。 Momentjs 页面有下载或安装方法,但如果我下载代码,我想使用任何方法,这会引发异常,如果我使用 'npm install moment --save' 命令安装包,我不知道如何导入并调用它。

有人可以帮我在 extjs 中导入这个依赖。

@Carlos 您可以按照 Akrion 的建议在 index.html 文件中添加脚本标签。

另一种方式 - 在 app.json 文件中,您可以在 js [] -

中添加以下内容
"js":[
      {
        "path": "https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js",
        "remote": true
      }
]

添加完成后,您需要进行煎茶应用刷新或煎茶应用构建。

然后在应用程序代码中你可以像下面这样使用它 -

var welcomeText = 'Welcome to Sencha Fiddle! Today is: '+ moment(new Date()).format("MM-DD-YYYY");
Ext.Msg.alert('Welcome message',welcomeText);

另一种方法是 Ext.mixin.Mashup mixin。

This mixin allows users to easily require external scripts in their classes. This load process delays application launch (Ext.onReady) until all such scripts are loaded ensuring that your class will have access to its required scripts from the start.

所以你可以有一个 Moment.js 适配器 class,像这样:

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

    requiredScripts: [
        'https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js'
    ],
    ...
});

我很喜欢这个,因为你把外部依赖放在离使用它的地方很近的地方。当您可能想要删除依赖项或在不同的 place/project.

中重用它时,这非常方便