我在导入 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 Code 中出现错误?
最佳答案
我认为导入不起作用,因为您缺少 mysql2 的 typescript 定义。您还没有发布您的 typings.json(或 tsd.json),但我猜您已经为 nodejs 导入了定义,但对于 mysql2 却没有,因此您可以使用“导入自”语法导入“http”,而对于 mysql2,您必须使用普通的javascript nodejs 'require' 用于导入它。
关于mysql - 在 TypeScript 中导入时“找不到模块”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36091822/