在TypeScript中导入时找不到模块
我有一个导入nodejs模块的小问题。 对于http模块,这个语法运行良好:
import * as http from "http";
但是,当我试图做'mysql2'node.js模块相同:
import * as database from "mysql2";
我给了我一个错误:
Cannot find module 'mysql2'
并拒绝编译该行。 我甚至尝试过这样的语法(不知道为什么):
import {database} from 'mysql2';
但是只有我这样写的时候没有错误:
let database = require('mysql2');
在tsconfig.json我已经设置:
"module": "commonjs", "moduleResolution": "node",
当然,我已经通过npm在项目文件夹中安装了模块:
npm install mysql2 --save
所以我的问题是,为什么导入不工作,我有错误的Visual Studio代码?
我认为导入不起作用,因为你缺lessmysql2的打字稿定义。 你还没有发布你的typings.json(或tsd.json),但我猜你已经导入了定义的nodejs,但不适用于mysql2,因此你可以使用'import from'语法导入'http',而使用mysql2你必须使用plain javascript nodejs'需要'导入它。