分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

nodeJS模块寻址规则

发布时间:2023-09-06 02:35责任编辑:傅花花关键词:暂无标签

引子

阮一峰一则教程中, 将应用放置在  npm 模块安装目录同等级的目录(https://github.com/ruanyf/webpack-demos)下。

但是应用目录文件中, 引用标准库的使用方法没有变化

https://github.com/ruanyf/webpack-demos/blob/master/demo15/index.js

如下代码

import React from ‘react‘;import { render } from ‘react-dom‘;import { BrowserRouter, Switch, Route, Link } from ‘react-router-dom‘;

NodeJS的寻址规则是怎么样的呢?

尽管这个是前端的代码, 但是我们知道实际上引用模块,并打包的动作, 是交给 webpack来的做得。

但是模块的寻址规则, 则是哪找NodeJS的文件寻址规则, 没有改变,而是打包后, 变成前端可执行的集成代码。

寻址规则

https://nodejs.org/api/modules.html#modules_accessing_the_main_module

require(X) from module at path Y1. If X is a core module, ??a. return the core module ??b. STOP2. If X begins with ‘/‘ ??a. set Y to be the filesystem root3. If X begins with ‘./‘ or ‘/‘ or ‘../‘ ??a. LOAD_AS_FILE(Y + X) ??b. LOAD_AS_DIRECTORY(Y + X)4. LOAD_NODE_MODULES(X, dirname(Y))5. THROW "not found"LOAD_AS_FILE(X)1. If X is a file, load X as JavaScript text. ?STOP2. If X.js is a file, load X.js as JavaScript text. ?STOP3. If X.json is a file, parse X.json to a JavaScript Object. ?STOP4. If X.node is a file, load X.node as binary addon. ?STOPLOAD_INDEX(X)1. If X/index.js is a file, load X/index.js as JavaScript text. ?STOP2. If X/index.json is a file, parse X/index.json to a JavaScript object. STOP3. If X/index.node is a file, load X/index.node as binary addon. ?STOPLOAD_AS_DIRECTORY(X)1. If X/package.json is a file, ??a. Parse X/package.json, and look for "main" field. ??b. let M = X + (json main field) ??c. LOAD_AS_FILE(M) ??d. LOAD_INDEX(M)2. LOAD_INDEX(X)LOAD_NODE_MODULES(X, START)1. let DIRS = NODE_MODULES_PATHS(START)2. for each DIR in DIRS: ??a. LOAD_AS_FILE(DIR/X) ??b. LOAD_AS_DIRECTORY(DIR/X)NODE_MODULES_PATHS(START)1. let PARTS = path split(START)2. let I = count of PARTS - 13. let DIRS = [GLOBAL_FOLDERS]4. while I >= 0, ??a. if PARTS[I] = "node_modules" CONTINUE ??b. DIR = path join(PARTS[0 .. I] + "node_modules") ??c. DIRS = DIRS + DIR ??d. let I = I - 15. return DIRS

nodeJS模块寻址规则

原文地址:https://www.cnblogs.com/lightsong/p/10540419.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved