当前位置: 首页 > news >正文

node自定义模块的路径查找

自定义模块指的是非核心模块,也不是路径形式的标识符。它是一种特殊的文件模块,可能是一个文件或者包的形式。这类模块的查找是最费时的,也是所有方式中最慢的一种。

模块路径是Node在定位文件模块的具体文件时制定的查找策略,具体表现为一个路径组成的数组。关于这个路径的生成规则,我们可以手动尝试一番。

创建test.js文件,其内容为 console.log(module.paths); 。
将其放到任意一个目录中然后执行 node test.js 。

在Linux下,你可能得到的是这样一个数组输出:

[ '/home/jackson/research/node_modules',
'/home/jackson/node_modules',
'/home/node_modules',
'/node_modules' ]
1
2
3
4
而在Windows下,也许是这样:

[ 'c:\\nodejs\\node_modules', 'c:\\node_modules' ]
1
可以看出,模块路径的生成规则如下所示。

前文件目录下的node_modules目录。
父目录下的node_modules目录。
父目录的父目录下的node_modules目录。
沿路径向上逐级递归,直到根目录下的node_modules目录。
它的生成方式与JavaScript的原型链或作用域链的查找方式十分类似。在加载的过程中,Node会逐个尝试模块路径中的路径,直到找到目标文件为止。可以看出,当前文件的路径越深,模块查找耗时会越多,这是自定义模块的加载速度是最慢的原因。

webpack可以配置模块的查找路径

resolve: {
modules: [path.resolve(__dirname, 'node_modules')]
}
1
2
3
指定只在当前模块的node_modules查找模块
---------------------

转载于:https://www.cnblogs.com/hyhy904/p/11192625.html

相关文章:

  • Keras(七)Keras.layers各种层介绍
  • mysql优化过程中遇见的坑(mysql优化问题特别注意)
  • 模块的查找方法
  • 动态规划——区间DP,计数类DP,数位统计DP
  • javascript基础学习六--原型与继承
  • reboot 示例代码
  • 桥模式
  • k8s高可用
  • kafka笔记博客
  • 开发工具之AltiumDesigner
  • 为什么使用消息队列?消息队列有什么优点和缺点?Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么优点和缺点?...
  • go guid 和uuid生成
  • 使用策略模式减少if else
  • numpy中的max()函数
  • [NOI2005]聪聪与可可(期望)
  • 【347天】每日项目总结系列085(2018.01.18)
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • CentOS 7 防火墙操作
  • Hexo+码云+git快速搭建免费的静态Blog
  • Python十分钟制作属于你自己的个性logo
  • Sass 快速入门教程
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 浏览器缓存机制分析
  • 全栈开发——Linux
  • 消息队列系列二(IOT中消息队列的应用)
  • 学习笔记:对象,原型和继承(1)
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 原生js练习题---第五课
  • python最赚钱的4个方向,你最心动的是哪个?
  • Semaphore
  • 函数计算新功能-----支持C#函数
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • #etcd#安装时出错
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (十)T检验-第一部分
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (转)iOS字体
  • (转)用.Net的File控件上传文件的解决方案
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • *Django中的Ajax 纯js的书写样式1
  • .bat批处理(六):替换字符串中匹配的子串
  • .net FrameWork简介,数组,枚举
  • .NET 分布式技术比较
  • .Net各种迷惑命名解释
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .Net开发笔记(二十)创建一个需要授权的第三方组件
  • .Net转前端开发-启航篇,如何定制博客园主题
  • // an array of int