我在导入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的打字稿定义。您尚未发布您的types.json(或tsd.json),但我想对于nodejs,您已经导入了定义,但对于mysql2没有,因此您可以使用“ import from”语法导入“ http”,而对于mysql2,则必须使用简单javascript nodejs“需要”导入。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句