在node中使用import from 可以像
import fs from 'fs'
引入核心模块
也可以引入用npm安装的模块
import axios from 'axios'
也可以单纯引入自定义的模块
import module from './module.js'
我想问一下import from 引入模块的具体机制是怎样的,或者是按何种查询顺序引入模块的
这是我查到的require的查询机制,不知道import from是否也一样
如果传递给 require() 的模块标识符不是一个核心模块,也没有以 '/' 、 '../' 或 './' 开头,则 Node.js 会从当前模块的父目录开始,尝试从它的 /node_modules 目录里加载模块。 Node.js 不会附加 node_modules 到一个已经以 node_modules 结尾的路径上。
如果还是没有找到,则移动到再上一层父目录,直到文件系统的根目录。
例子,如果在 '/home/ry/projects/foo.js' 文件里调用了 require('bar.js'),则 Node.js 会按以下顺序查找:
/home/ry/projects/node_modules/bar.js
/home/ry/node_modules/bar.js
/home/node_modules/bar.js
/node_modules/bar.js
这使得程序本地化它们的依赖,避免它们产生冲突。
1.node中模块执行的顺序是先加载node自带的核心模块,再加载用户模块(就是我们写的),最后是加载第三方模块;
2.用户模块的查找规则:require("./index"),不写后缀名,查找规则为:index---index.js---index.json---index.node,require是node自带的文件导入方法,而import是ES6的导入方法;
3.第三方查找规则分为四种情况:
4.希望可以帮到你