2017-08-24 132 views
0

我使用的是JWT简单的库:角4找不到名称错误

https://www.npmjs.com/package/jwt-simple

在我的打字稿之一,我有以下几点:

const jwt = require('jwt-simple'); 
const payload = { user: 'joesan' }; 
const secret = 'testtest'; 

现在,当我运行这个应用程序,它在具有要求(...)的地方失败。它失败,并显示以下消息:

Cannot find name 'require'. 

有关此问题可能存在的任何想法?

回答

1

看到这里 - nodejs require inside TypeScript file

打字稿不使用依赖进口的CommonJS的方法,所以你必须调整它一点点。

首先,您需要确保您的tsconfig.json文件中的allowJS选项设置为true。

{ 
    "compilerOptions": { 
    ... 
    "allowJS": true, 
    ... 
    } 
} 

现在,我从链接粘贴最好的答案相关的上述

正确的语法是:

进口sampleModule =需要( '模块名');或

从'modulename'导入*作为sampleModule;然后用--module commonjs编译你的 TypeScript。

如果包装不来与index.d.ts文件和它的 的package.json没有一个“分型”属性,TSC将树皮,它 不知道什么是“模块名”是指至。为此,您需要 在http://definitelytyped.org/上为它找到一个.d.ts文件,或者自己编写一个 。

如果您正在为Node.js编写代码,您还需要http://definitelytyped.org/中的node.d.ts文件 。

如果您使用的角度CLI,你也只是尝试在角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 
    } 
    ], 
0

将其添加到“脚本”参数,可以在地方的需要尝试import jwt-simple声明。

相关问题