javascript - TypeScript 不理解 Node.js 中库的“导入”。获取 SyntaxError:意外的标识符?
问题描述
我在 Node.js 中使用nanoid库,但我在 TypeScript 中编写后端。
当我尝试编译我的 TypeScript 时,我得到:
/project/node_modules/nanoid/async/index.js:1
import crypto from 'crypto'
^^^^^^
SyntaxError: Unexpected identifier
at Module._compile (internal/modules/cjs/loader.js:872:18)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:947:10)
at Module.load (internal/modules/cjs/loader.js:790:32)
at Function.Module._load (internal/modules/cjs/loader.js:703:12)
at Module.require (internal/modules/cjs/loader.js:830:19)
at require (internal/modules/cjs/helpers.js:68:18)
at Object.<anonymous> (/project/dist/utils/generateId.js:4:17)
at Module._compile (internal/modules/cjs/loader.js:936:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:947:10)
at Module.load (internal/modules/cjs/loader.js:790:32)
这是导致它的一段代码:
import { customAlphabet } from "nanoid/async";
我想它会自然而然地工作吗?
我的tsconfig.json
样子是这样的:
{
"compilerOptions": {
"module": "commonjs",
"esModuleInterop": true,
"declaration": true,
"removeComments": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es2017",
"sourceMap": true,
"outDir": "./dist",
"baseUrl": "./",
"incremental": true,
"resolveJsonModule": true,
"paths": {
"*": ["node_modules/*", "src/*"]
}
}
}
我的节点版本是v12.10.0
,我的打字稿版本是v3.7.4
.
解决方案
尝试这个import * as crypto from 'crypto'
推荐阅读
- c# - 用于查找某人迟到的记录的 SQL 查询
- javascript - 如何让一根手指移动谷歌地图但*不是*两根手指
- python - 使用 Python 在 Raspberry Pi 3 上读取数字和模拟输入
- c# - 尝试安装没有强名称的程序集
- laravel - 在laravel中上传图像文件不起作用
- java - 创建由列表中缺少的项目组成的列表
- javascript - 将二数组对象转换为一数组对象
- java - 如何防止 JodaTime 周期的负面结果
- python - 带有 Redis 的 Django websockets
- angularjs - 无法使用 AngularJS 在 Spring Web Project 中上传文件?