javascript 如何在Ember.js中导入和使用npm包?

rkttyhzu  于 2023-02-07  发布在  Java
关注(0)|答案(3)|浏览(152)

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

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有crypto-js文件夹,上面有3个文件。但是我还是得到了Could not import module 'crypto-js'错误。如何解决呢?谢谢!

kzipqqlq

kzipqqlq1#

不需要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';
nxowjjhe

nxowjjhe2#

感谢所有的答案。这是一个老项目,在我安装了ember-auto-importwebpack后,我得到了许多构建错误。我不想浪费时间来修复它们,但最终我得到了它的工作:

app.import('node_modules/crypto-js/crypto-js.js',{
    using:[
      {transformation: 'amd', as: 'CryptoJS'}
    ]
  });

然后我可以导入它并在其他.js文件中使用,如下所示:

import CryptoJS from 'CryptoJS';
bxgwgixi

bxgwgixi3#

在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' }] });

在您的组件、控制器或模型中,您可以导入库并使用SHA 256函数,如下所示

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

相关问题