【问题标题】:How to import and use npm package in Ember.js?如何在 Ember.js 中导入和使用 npm 包?
【发布时间】:2023-02-06 00:24:02
【问题描述】:

我是 EmberJS 的新手,我想在我的 EmberJS 应用程序中导入和使用 crypto-js,我使用 ember install crypto-js 安装包,然后将这些行添加到 ember-cli-build.js 以将它们添加到 ember build 以使用 SHA256 函数:

  app.import('node_modules/crypto-js/core.js');
  app.import('node_modules/crypto-js/crypto-js.js');
  app.import('node_modules/crypto-js/sha256.js');

我可以在浏览器中看到,assets/node_modules 具有包含上述 3 个文件的 crypto-js 文件夹。但是我仍然收到Could not import module 'crypto-js'错误。如何解决?谢谢!

【问题讨论】:

    标签: javascript node.js ember.js


    【解决方案1】:

    不需要app.import

    只要你安装了ember-auto-import,或者你正在使用embroider(它遵循webpack),你就可以按照文档:https://www.npmjs.com/package/crypto-js

    import sha256 from 'crypto-js/sha256';
    import hmacSHA512 from 'crypto-js/hmac-sha512';
    import Base64 from 'crypto-js/enc-base64';
    

    【讨论】:

      【解决方案2】:

      在 shims 文件夹中创建一个名为 crypto-js.js 的文件并添加此代码

      import 'crypto-js/core';
      import 'crypto-js/sha256';
      
      export default window.CryptoJS;
      
      

      在您的 ember-cli-build.js 文件中,添加以下内容:

      app.import('vendor/shims/crypto-js.js', { using: [{ transformation: 'cjs', as: 'crypto-js' }] });
      
      

      在您的组件、控制器或模型中,您可以导入库并像这样使用 SHA256 函数

      import crypto from 'crypto-js';
      const hash = crypto.SHA256("Message to hash");
      console.log(hash.toString());
      

      【讨论】:

      • 我认为自 2018 年以来不推荐这样做。人们可以使用 ember-auto-import 来遵循包自述文件中记录的说明。在大多数情况下,构建系统的详细信息是从应用程序开发人员那里抽象出来的。
      猜你喜欢
      • 2020-02-07
      • 1970-01-01
      • 2017-03-15
      • 1970-01-01
      • 2019-12-21
      • 2021-10-06
      • 1970-01-01
      • 2023-04-04
      • 2016-07-09
      相关资源
      最近更新 更多