Node.js 升级包到最新版本后,让 import 和 require 在一个文件中混用

node.js 默认的包管理工具 npm 是不会给包升级大版本的,也就是无法享受最新版本带来的更新,好处是 update 后代码不会出现大面积需要修复的情况,

但总有需要更新包,修复bug的时候,这时候可以安装更新检查

npm install -g npm-check-updates

安装完后运行

ncu
image.png

可以看到可以升级的情况

这时候可以运行

ncu -u

将package.json 所有的版本更新,然后运行

npm install

安装所有新的包


安装完后就会发现,很多官方的包都更新到了 module 模式,就是我们之前的 require 出错了,

最快的解决方案 ( node.js >= 13 ) 就是在packag.json中加一句

"type": "module",
image.png

这样一来,就可以愉快的用 import 了,但又带来一个新问题,就是 require 开始报错

解决的方法就是在用到 require 的库的 js 文件中加上

import { createRequire } from "module";
const require = createRequire(import.meta.url);

这里要注意的是,有些库升级以后已经放弃 require,那只能一个一个改成 import 了

.
.
.


你可能感兴趣的:(Node.js 升级包到最新版本后,让 import 和 require 在一个文件中混用)