'Cannot find module' 在 TypeScript 中导入时
'Cannot find module' when import in 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 代码中有错误?
我认为导入不起作用,因为您缺少 mysql2 的打字稿定义。您还没有发布 typings.json(或 tsd.json),但我猜您已经为 nodejs 导入了定义,但没有为 mysql2 导入定义,因此您可以使用 [=13 导入 'http' =] 语法和 mysql2 你必须使用普通 javascript nodejs 'require' 来导入它。
安装myql2的typescript类型定义如下:
npm install --save-dev types/mysql2#semver:version
你选择哪个版本。
例如:
npm i --save-dev types/mysql2#semver:^1.0.0
我在导入 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 代码中有错误?
我认为导入不起作用,因为您缺少 mysql2 的打字稿定义。您还没有发布 typings.json(或 tsd.json),但我猜您已经为 nodejs 导入了定义,但没有为 mysql2 导入定义,因此您可以使用 [=13 导入 'http' =] 语法和 mysql2 你必须使用普通 javascript nodejs 'require' 来导入它。
安装myql2的typescript类型定义如下:
npm install --save-dev types/mysql2#semver:version
你选择哪个版本。
例如:
npm i --save-dev types/mysql2#semver:^1.0.0