Skip to content

1. 引入语句

开发者在文件中使用 importrequire 语句引入组件。例如,import SomeComponent from 'some-library'

2. 解析模块名称

当遇到这样的引入语句时,构建工具(如 Webpack, Parcel, 或 Node.js 自身)首先解析模块名称(如 'some-library')。这通常意味着它将在项目的 node_modules 目录中查找匹配的文件夹。

3. 查找 package.json

node_modules/some-library 目录中,构建工具会查找 package.json 文件。这个文件包含了模块的元数据,重要的是它指定了模块的入口点,通常是 main 字段。例如,"main": "dist/some-library.js"

4. 定位入口文件

构建工具根据 package.json 中的 main 字段定位模块的入口文件。在这个例子中,它会尝试加载 node_modules/some-library/dist/some-library.js

5. 处理模块内部的引用

如果入口文件内部还有进一步的 importrequire 语句,构建工具将递归地重复这个过程,解析和加载每个依赖。

6. 处理路径别名和扩展名

构建工具还会处理路径别名(如在 Webpack 中配置的)和自动补全文件扩展名(如 .js, .jsx, .ts, .json 等)。

7. 模块的编译或打包

对于前端项目,构建工具通常会编译(例如使用 Babel)或打包(使用 Webpack 或 Rollup)所有这些模块,以便它们可以在浏览器中运行。