如何在 ember cli 应用程序中使用第三方 npm 包 [英] How to use third party npm packages with ember cli app

查看:16
本文介绍了如何在 ember cli 应用程序中使用第三方 npm 包的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这实际上是关于任何不与 ember 一起使用的 npm 包.就我而言,我试图让 crypto-js 工作,但对于任何不是专门为 ember cli 设计的 npm 包,它似乎总是同样的问题.

我想在我的 ember 应用程序中使用 cryptoJS,我目前正在使用 ember cli 对其进行重构,但是我在导入我已经在使用的所有第三方包和库时遇到了很多麻烦,例如 cryptoJS.

I want to use cryptoJS in my ember app, which I'm currently refactoring with ember cli, but I'm having a lot of trouble importing all the third party packages and libraries I'm already using, like for example cryptoJS.

CryptoJS 至少有一个 npm 包,我什至不想考虑如果我包含的一些库没有包会发生什么......

CryptoJS at least has a package for npm, I don't even want to think about what happens if some of my included libraries don't have a package...

我是否只是在 ember-cli 的文档中遗漏了这一点,还是真的没有描述如何导入其他 npm 包以及如何正确包含非包库以将它们置于版本控制和依赖项控制之下?

Am I just missing the point in the documentation of ember-cli or is it really not described how to import other npm packages and also how to inlcude non-package libraries properly to keep them under version control and dependency control?

如果我按照crypto-js包手册的描述:

If I follow the description of the crypto-js package manual:

var CryptoJS = require("crypto-js");
console.log(CryptoJS.HmacSHA1("Message", "Key"));

我在 ember build

utils/customauthorizer.js: line 1, col 16, 'require' is not defined.

感谢您对此的任何帮助,我对 ember cli 项目感到非常兴奋,但到目前为止,导入我现有的 ember 应用程序非常痛苦......

Thanks for any help on this, I'm very excited about the ember cli project, but importing my existing ember app has been quite painful so far...

不幸的是,仅导入不起作用.

Just importing unfortunately does not work.

import CryptoJS from 'crypto-js';

在构建过程中抛出

daily@dev1:~/VMD$ ember build
version: 0.1.2
Build failed.
File: vmd/utils/customauthorizer.js
ENOENT, no such file or directory '/home/daily/VMD/tmp/tree_merger-tmp_dest_dir-F7mfDQyP.tmp/crypto-js.js'
Error: ENOENT, no such file or directory '/home/daily/VMD/tmp/tree_merger-tmp_dest_dir-F7mfDQyP.tmp/crypto-js.js'
    at Error (native)
    at Object.fs.statSync (fs.js:721:18)
    at addModule (/home/daily/VMD/node_modules/ember-cli/node_modules/broccoli-es6-concatenator/index.js:84:46)
    at addModule (/home/daily/VMD/node_modules/ember-cli/node_modules/broccoli-es6-concatenator/index.js:133:9)
    at addModule (/home/daily/VMD/node_modules/ember-cli/node_modules/broccoli-es6-concatenator/index.js:133:9)
    at /home/daily/VMD/node_modules/ember-cli/node_modules/broccoli-es6-concatenator/index.js:59:7
    at $$$internal$$tryCatch (/home/daily/VMD/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:470:16)
    at $$$internal$$invokeCallback (/home/daily/VMD/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:482:17)
    at $$$internal$$publish (/home/daily/VMD/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:453:11)
    at $$rsvp$asap$$flush (/home/daily/VMD/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:1531:9)

推荐答案

最简单的推荐的答案是使用 ember-browserify.(因为 未来将删除对凉亭包的支持.)

这是在 Ember CLI 应用程序中使用 npm 包 dexie 的示例.

This is an example for using the npm package dexie within an Ember CLI app.

安装浏览器:npm install ember-browserify --save-dev

安装 dexie(或任何你需要的模块):npm install dexie --save-dev

Install dexie (or whatever module you need): npm install dexie --save-dev

像这样导入模块:import Dexie from 'npm:dexie';

更新(2021 年 4 月):

ember-browserify 现在已被弃用,取而代之的是 ember-auto-importember-cli-cjs-transform

ember-browserify has now been is deprecated in favor of either ember-auto-import or ember-cli-cjs-transform

(参见 ember-browserify 顶部的弃用 警告)

(see the deprecation warning at the top of ember-browserify)

这篇关于如何在 ember cli 应用程序中使用第三方 npm 包的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆