【问题标题】:How to add MomentJS to an Aurelia application如何将 MomentJS 添加到 Aurelia 应用程序
【发布时间】:2017-02-15 18:11:28
【问题描述】:

我有一个应用程序,我正在尝试导入 MomentJS 以与 ValueConverting 一起使用。我已经转到我的 package.json 文件并将以下内容添加到我的 jspm 依赖项中:

"moment": "npm:moment@^2.14.1"

但是当我尝试从我的文件中导入它时,它找不到模块:

import moment from '../moment';

我正在尝试将其导入到 src 文件夹深 1 个目录的文件中。所以,这个文件在 src/folder/file.ts 中

如何导入时刻?

【问题讨论】:

  • 这不是一个回答,但这里现在正在讨论这个问题:github.com/aurelia/skeleton-navigation/issues/606
  • @AshleyGrant 入门/初学者工具包是否内置了 moment?
  • 不,它没有。 bluebird、fetch polyfill、bootstrap、font awesome 和 jquery 是唯一包含在骨架中的东西。
  • @AshleyGrant 好的,谢谢。要导入另一个包,我们唯一要做的就是将它添加到 package.json 文件的依赖项中并运行构建,对吗?
  • 其实我只是重读了你的问题。我会发布答案

标签: aurelia


【解决方案1】:

要导入另一个包,我们唯一要做的就是添加 它依赖于 package.json 文件并运行构建, 对吗?

除非绝对必要,否则不应像那样手动编辑 package.json 文件。您应该使用jspm install moment 来安装moment。仅仅在package.json 文件中添加行实际上并不能完成任何事情。

但是您已经将行添加到package.json,并且您添加的行是正确的,所以现在您需要运行jspm install,以便可以真正将moment 的代码拉下并放入您的项目中。

接下来,要导入时刻,您需要这样做:

import moment from 'moment';

现在您可以在代码中使用 moment() 函数了。

【讨论】:

  • 我在 VS2015 中工作,我正在尝试在包管理器控制台上运行 jspm 安装,但我收到“无法识别术语 'jspm'”。此外,当我运行 jspm 安装时刻时,它也无法识别。有什么建议吗?
  • 你安装了jspm吗?您使用 npm npm install -g jspm 安装它。
  • 我很确定这可能已经成功了。它只是永远......你怎么知道什么时候使用 npm 以及什么时候使用 jspm?
  • 使用 npm 构建依赖,jspm 用于客户端依赖。我们即将推出一个 CLI,这将使这变得更加简单。它将使用 npm 构建和客户端依赖项,并为您处理配置和一切。它最终应该会在未来的某个时候集成到 Visual Studio 中。
  • 你也可以使用jspm install npm:<package>通过jspm安装npm包
【解决方案2】:

按照这些步骤进行

  1. npm install moment --save
  2. typings install dt~moment --global --save
  3. 将以下内容添加到 aurelia.json 文件的依赖项部分
    • { "name": "moment", "path": "../node_modules/moment", "main": "moment" }
  4. 在您的 .ts 文件中引用它
    • import * as moment from 'moment';

【讨论】:

    【解决方案3】:

    我们在 Aurelia 中使用 TypeScript 中的 Moment 时遇到了同样的问题。

    由于某种原因,从 JSPM 安装的 Moment.js 不包含类型定义。

    这是我修复它的方法:

    在 config.js 中你必须使用

    "moment": "npm:moment@2.11.2", 
    

    (我遇到了 2.14.1 的问题)

    然后您需要找到有效的类型定义并将其添加到您的typings.json

    "github:typed-typings/npm-moment#a4075cd50e63efbedd850f654594f293ab81a385" 成功了。

    {
      "name": "my-cool-app-name",
        "dependencies": {
             ....
            "moment": "github:typed-typings/npm-moment#a4075cd50e63efbedd850f654594f293ab81a385"
        },
      "globalDevDependencies": {
        ........
      }
    }
    

    然后我将输入 cli jspm install,然后输入 typings install(jspm 和 typings 都必须全局安装,如果不是这种情况,请输入 npm install jspm -gnpm install typings -g)。您现在应该可以在文件中导入时刻,如下所示:

    import * as moment from 'moment';
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-25
      • 1970-01-01
      • 1970-01-01
      • 2016-01-09
      • 2016-05-24
      • 2018-10-23
      • 2013-09-22
      相关资源
      最近更新 更多