我正在使用jwt简单库:
https://www.npmjs.com/package/jwt-simple
在我的一个打字稿中,我有以下内容:
const jwt = require('jwt-simple');
const payload = { user: 'joesan' };
const secret = 'testtest';
现在,当我运行此应用程序时,它在具有require(...)的位置失败。它失败并显示以下消息:
Cannot find name 'require'.
关于问题可能是什么的任何想法?
答案 0 :(得分:1)
请参阅此处 - nodejs require inside TypeScript file
Typescript没有使用CommonJS依赖导入方法,所以你必须稍微调整一下。
首先,您需要确保tsconfig.json flie中的allowJS选项设置为true。
{
"compilerOptions": {
...
"allowJS": true,
...
}
}
现在我从上面的链接中粘贴了最相关的答案
正确的语法是:
import sampleModule = require(' modulename');或
从' modulename'中导入*作为sampleModule;然后编译你的 TypeScript with --module commonjs。
如果软件包没有附带index.d.ts文件及其附件 package.json没有"打字"属性,tsc会吠叫它 我不知道' modulename'是指。为此你需要 在http://definitelytyped.org/上找到它的.d.ts文件,或者写一个 自己。
如果您正在为Node.js编写代码,您还需要node.d.ts 来自http://definitelytyped.org/的文件。
如果您正在使用角度CLI,您也可以尝试将其添加到'脚本' angular-cli.json中的参数
},
"apps": [
{
"main": "src/main.ts",
"styles": [
"../node_modules/bootstrap/dist/css/bootstrap.min.css"
],
"scripts": [ // HERE
"../node_modules/bootstrap/dist/js/bootstrap.min.js"
],
"tsconfig": "src/tsconfig.json",
"mobile": false
}
],
答案 1 :(得分:0)
您可以尝试使用import jwt-simple
代替require语句。