我曾做过一件
npm install --save crypto-js
在当前项目中。它显示在package.json
中:
$grep crypto package.json
"crypto-js": "^4.0.0",
然后在一个本地项目javascript文件中,我试图使用它,但没有弄清楚。以下是尝试:
var CryptoJS = require("crypto-js");
我还尝试在将aes.js
下载到同一个本地目录后使用import
方法:
<script type="text/javascript" src="aes.js"></script>
这导致:
未捕获引用错误:require未在my-project-worker.js中定义:1
Uncaught ReferenceError: CryptoJS is not defined
at encrypt (audio-clips-worker.js:168)
at audio-clips-worker.js:235
at Set.forEach (<anonymous>)
at onmessage (audio-clips-worker.js:229)
最后我试着留下一个绝对URL:
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/aes.js"></script>
这给出了相同的“CryptoJS is not defined”错误。这里的 * 工作 * 选项是什么-缺少哪些步骤或需要以不同的方式完成?
3条答案
按热度按时间arknldoa1#
对我有用。也许您的包包含不正确:
https://jsfiddle.net/rLt7haxc/6/
npm项目的CodeSandbox演示:
https://codesandbox.io/s/prod-glade-6j2rw
有一个CryptoES项目更符合模块标准。
xkrw2x1b2#
“require is not defined”意味着你没有在nodejs上下文中运行它。要在vanilla环境中运行,你只需要包含带有绝对路径的脚本,并将你的js更改为不使用'require'而是使用'CryptoJS',如下所示:
mm9b1k5b3#
对于任何新手来说,你必须在项目JS文件上方声明Crypto JS URL才能工作,就像这样:
如果你用下面方式声明它,你会得到一个错误
caught ReferenceError: CryptoJS is not defined
。