我尝试在通过docker compose运行的react typescript中使用crypto-js,但出现以下错误
找不到模块:无法解析'/ app / crypto'中的'crypto-js'
这是我导入的crypto-js。例如:
import crypto from 'crypto-js';
export const encrypt = (key: string, evalue: any) => {
const secret_key = crypto.SHA256(key);
return crypto.AES.encrypt(evalue, secret_key).toString();
};
我尝试了很多次,但是没有用。
答案 0 :(得分:0)
我最好的猜测是Typescript需要软件包的一些类型定义。
尝试运行npm install @types/crypto-js --save-dev
答案 1 :(得分:0)
关于您的tsconfig.json
文件,我相信这是因为您指定了"include": [ "src" ]
,所以这意味着所有node_modules
都将被跳过。
尝试将其删除并改用baseUrl
选项。
构建项目不需要类型(除非您使用strict
标志)。但是正如@Kael所说,安装它们可能很有用。因此您可以指定
"typeRoots": [
"node_modules/@types"
],
在您的配置文件中
答案 2 :(得分:0)
尝试声明您的类型。d.ts
declare module 'crpyto-js' {
}
如果这行得通,我们现在至少可以确保您的TypeScript设置正确。
然后,您只需要安装@types/crypto-js
软件包并再次删除模块声明即可。
如果这样不起作用,那么您的打字稿配置就不是您的node_modules / @ types文件夹。
然后在tsconfig.json中设置TypeRoots
"compilerOptions": {
"typeRoots" : ["./typings", "node_modules/@types"]
}
}