编辑:实际上这是关于任何不是专门为Ember设计的npm包。在我的情况下,我试图让crypto-js正常工作,但似乎任何不是专门为ember cli设计的npm包都会遇到相同的问题。
我想在我正在使用ember cli重构的应用中使用cryptoJS,但我在导入所有第三方包和库时遇到了很多麻烦,比如cryptoJS。
CryptoJS至少有一个用于npm的软件包,如果我的一些已包含的库没有软件包,我甚至不想去想...
我是不是只是在忽略ember-cli文档中的重点,或者确实没有描述如何正确导入其他npm软件包以及如何正确地包含非软件包库以使它们保持在版本控制和依赖控制之下?
如果我按照crypto-js软件包手册的说明进行操作:
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应用程序相当痛苦...
编辑:
仅仅导入是行不通的。
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)
import CryptoJs from 'crypto-js';
。 - Patsy Issa