使节点模块与打字稿一起使用

时间:2018-08-09 10:13:03

标签: node.js typescript

我在这里关注了各种话题,但无法正常工作。 我想在打字稿中编译以下代码。 这段代码来自单个js文件,但是由于我的问题来自于模态包含,所以我正在编译:

import tweetnacl from "./node_modules/tweetnacl/nacl"; 
console.log(`here we are`);

我尝试过的方法: 使用此tsconfig.json

{
  "compilerOptions": {
    "target":"ES6",
    "moduleResolution": "classic",
  }
}

使用tsc --module es6 --target es6进行编译 并确定模块的每个选项     npm install @类型/节点 也没有为我工作。

我运行tsc --module commonjs test.ts并获得

node_modules/tweetnacl/nacl.d.ts(3,1): error TS1128: Declaration or statement expected.
node_modules/tweetnacl/nacl.d.ts(3,11): error TS1005: ';' expected.
node_modules/tweetnacl/nacl.d.ts(3,25): error TS1005: '{' expected.
node_modules/tweetnacl/nacl.d.ts(21,81): error TS1110: Type expected.
node_modules/tweetnacl/nacl.d.ts(22,9): error TS1131: Property or signature expected.
node_modules/tweetnacl/nacl.d.ts(22,18): error TS1005: ';' expected.
node_modules/tweetnacl/nacl.d.ts(23,18): error TS1005: ';' expected.
node_modules/tweetnacl/nacl.d.ts(24,18): error TS1005: ';' expected.
node_modules/tweetnacl/nacl.d.ts(30,9): error TS1131: Property or signature expected.
node_modules/tweetnacl/nacl.d.ts(30,18): error TS1005: ';' expected.
node_modules/tweetnacl/nacl.d.ts(31,18): error TS1005: ';' expected.
node_modules/tweetnacl/nacl.d.ts(32,5): error TS1128: Declaration or statement expected.
node_modules/tweetnacl/nacl.d.ts(36,110): error TS1110: Type expected.
node_modules/tweetnacl/nacl.d.ts(37,86): error TS1110: Type expected.
node_modules/tweetnacl/nacl.d.ts(52,9): error TS1131: Property or signature expected.
node_modules/tweetnacl/nacl.d.ts(52,18): error TS1005: ';' expected.
node_modules/tweetnacl/nacl.d.ts(53,18): error TS1005: ';' expected.
node_modules/tweetnacl/nacl.d.ts(54,18): error TS1005: ';' expected.
node_modules/tweetnacl/nacl.d.ts(55,18): error TS1005: ';' expected.
node_modules/tweetnacl/nacl.d.ts(56,18): error TS1005: ';' expected.
node_modules/tweetnacl/nacl.d.ts(57,5): error TS1128: Declaration or statement expected.
node_modules/tweetnacl/nacl.d.ts(74,74): error TS1110: Type expected.
node_modules/tweetnacl/nacl.d.ts(77,9): error TS1131: Property or signature expected.
node_modules/tweetnacl/nacl.d.ts(77,18): error TS1005: ';' expected.
node_modules/tweetnacl/nacl.d.ts(78,18): error TS1005: ';' expected.
node_modules/tweetnacl/nacl.d.ts(79,18): error TS1005: ';' expected.
node_modules/tweetnacl/nacl.d.ts(80,18): error TS1005: ';' expected.
node_modules/tweetnacl/nacl.d.ts(81,5): error TS1128: Declaration or statement expected.
node_modules/tweetnacl/nacl.d.ts(85,9): error TS1131: Property or signature expected.
node_modules/tweetnacl/nacl.d.ts(85,18): error TS1005: ';' expected.
node_modules/tweetnacl/nacl.d.ts(86,5): error TS1128: Declaration or statement expected.
node_modules/tweetnacl/nacl.d.ts(87,1): error TS1128: Declaration or statement expected.

如何使节点模块在打字稿中工作? 预先感谢

编辑: 更新tsc之后

tsc --v
Version 3.0.1

我收到此错误

test.ts:1:8 - error TS1192: Module '"./node_modules/tweetnacl/nacl"' has no default export.

1 import tweetnacl from "tweetnacl";
     ~~~~~~~~~

1 个答案:

答案 0 :(得分:1)

基于错误的行号和列号,假设您的node_modules/tweetnacl/nacl.d.ts文件看起来像this,看起来TypeScript在解析TypeScript 2.0中添加的多种语言结构时遇到了麻烦。如果您使用的TypeScript版本早于2.0(撰写本文时已经两年了!),请尝试升级。

第二轮: tweetnacl模块确实没有默认导出。看起来导入应该是:

import * as tweetnacl from "./node_modules/tweetnacl/nacl"; 
相关问题