Commit 06b5aa7a authored by fireMan-34's avatar fireMan-34

📃 docs: node 第三次相遇文档优化1

parent ce88625e
# nodeJs 模块化是什么呢。
# nodeJs 模块化是什么呢。
# nodeJs 模块化是什么呢。
1. nodeJs 模块化是 nodeJs 提供的一种集成代码逻辑的能力。使得我们使用 node 执行脚本的时候可以把代码逻辑分散到各个文件,也可以获得 nodeJs api 的能力。
2. nodeJs 最初的模块是 CommonJs 规范,就是今天的主角 node 16.不得不说,node 迭代非常的快,目前已经默认使用 es 规范了。不同规范的包也导致了模块🌹解析之前的冲突。比方说 commonJs 规范的入口引入了 es 规范会导致 node 执行爆模块错误,通常来说会有个波浪线强调 import 的字段。通常来说确定模块化规范会根据 package 的 字段 、 如果是 ts 的 还有 tsconfig 字段来确定模块化规范。 node 执行的时候会依据当前目录最近的上一级的 package 文件,来确定模块化规范,如果没有的话,就是走 node 默认的模块化规范解析逻辑。
2. nodeJs 最初的模块是 CommonJs 规范,就是今天的主角 node 16, node 16 版本默认的是 commonJs 规范。
不得不说,node 迭代非常的快,目前已经默认使用 es 规范了。
不同规范的包同时引入也导致了模块🌹解析之前的冲突。比方说 commonJs 规范的入口引入了 es 规范的模块会导致 node 执行爆模块错误,通常来说会有个波浪线强调 import 的字段。通常来说确定模块化规范会根据 package 的 字段 、 如果是 ts 的 还有 tsconfig 字段来确定模块化规范。
、node 执行的时候会依据当前目录最近的上一级的 package 文件,来确定模块化规范,如果没有的话,就是走 node 默认的模块化规范解析逻辑。
3. 说了这么多,让我们看看 CommonJs 的模块化规范吧
导入模块
```javascript
......@@ -36,4 +39,23 @@ module.exports = {
4. 记住由于现在模块规范在过度,往往市面上的 npm 包有可能是 es 规范,导致我们的 cjs 规范解析异常,所以可以尝试降级版本,每一次降级一个一个大版本。
如果是模块的模块版本异常,可以尝试手动修改包依赖版本,或者找更适合的包。(建议的话,还是找替代品或者看一下 issue 是否有解决方案)
5. 如果文件创建成功了,我们就进如下一个实操。
\ No newline at end of file
5. 代码从 index.js 手动搬到 index.js 加深一些 api 的理解
6. 在看一下当前文件夹下 package.json , script 字段,这里有两条命令, 一条是 "start" ,另一条是 “start:my”, 都是用 包管理器去启动 node 程序去执行一个脚本文件,所以我们可以用文字描述
```bash
node [文件路径] (参数1) (参数2) ...
```
然后,我们可以将鼠标悬浮在上面,会出现两个文字,如果是英文的是 run/debug ,如果是中文则是 运行/调试。
这一节,我们了解运行这一个就好了,后面有机会话会挑个章节讲讲。点击后,vscode 就会自动调用对应脚本命令,这是我们学到的第二种 node 脚本启动方式
7. 如果文件创建成功了,我们就进如下一个实操。
8. 这一节主要分享了几个知识点
1. 模块化 是什么 ?
2. 引入不同入口的模块化规范的话,会导致解析异常。
3. 什么是 CommonJs 规范
4. CommonJs 模块 智能提示的办法
5. 四个路径常量(相对于执行的时候)
6. 导入导出的简单使用
7. 第二种执行 node 脚本的方法。(第一种就是之前的 shell 执行)
8. 面对当前 es 模块规范盛行的 node npm 包 ,我们要使用 commonJs 规范的时候要如何解决。
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment