node_modules文件夹查找规则
1、node_modules文件夹的问题
- 文件夹以及文件过多过碎,当我们将项目整体拷贝给别人的时候,,传输速度会很慢很慢.
- 复杂的模块依赖关系需要被记录,确保模块的版本和当前保持一致,否则会导致当前项目运行报错
在传给别人的时候,不需要传node_modules里面的东西
package.json文件的作用
项目描述文件,记录了当前项目信息,例如项目名称、版本、作者、github地址、当前项目依赖了哪些第三方模块等。
项目根目录 -y 使用默认值
- 使用npm init -y命令生成。
{"name": "demo","version": "1.0.0","description": "", 描述"main": "index.js",主入口文件"scripts": {"test": "echo \"Error: no test specified\" && exit 1"},命令的别名,命令比经长得时候起别名"keywords": [],用关键词来描述项目"author": "","license": "ISC"默认协议,开放源代码
}
- 删除node_module文件夹,给别人,拿到项目后
- 执行 npm install
2、项目依赖
- 在项目的开发阶段和线上运营阶段,都需要依赖的第三方包,称为项目依赖
- 使用npm install 包名命令下载的文件会默认被添加到 package.json 文件的 dependencies 字段中
3、 开发依赖
- 在项目的开发阶段需要依赖,线上运营阶段不需要依赖的第三方包,称为开发依赖
- 使用npm install 包名 --save-dev命令将包添加到package.json文件的devDependencies字段中
4、package-lock.json文件的作用
- 锁定包的版本,确保再次下载时不会因为包版本不同而产生问题
- 加快下载速度,因为该文件中已经记录了项目所依赖第三方包的树状结构和包的下载地址,重新安装时只需下载即可,不需要做额外的工作
5、模块查找规则
当模块拥有路径但没有后缀时
require('./find.js');
require('./find');
- require方法根据模块路径查找模块,如果是完整路径,直接引入模块。
- 如果模块后缀省略,先找同名JS文件再找同名JS文件夹
- 如果找到了同名文件夹,找文件夹中的index.js
- 如果文件夹中没有index.js就会去当前文件夹中的package.json文件中查找main选项中的入口文件
- 如果找指定的入口文件不存在或者没有指定入口文件就会报错,模块没有被找到
当模块没有路径且没有后缀时
require('find');
- Node.js会假设它是系统模块
- Node.js会去node_modules文件夹中
- 首先看是否有该名字的JS文件
- 再看是否有该名字的文件夹
- 如果是文件夹看里面是否有index.js
- 如果没有index.js查看该文件夹中的package.json中的main选项确定模块入口文件
- 否则找不到报错
node_modules文件夹查找规则相关推荐
- node_modules包路径查找规则,依赖版本生效规则
规则 如果导入的模块不是nodejs的内置模块,如fs(文件读写模块),path(路径模块),http(服务器模块),也不是以/,-/ 或者./ 开头的本地模块,而是第三方模块(通过npm下载的模块) ...
- 快速删除node_modules文件夹!!!
快速删除node_modules文件夹!!! node_modules文件数量太多了,直接删除太慢了 使用以下命令 快速删除node_modules文件夹 第一步:安装rimraf npm insta ...
- 快速删除node_modules文件夹:rimraf node_modules
快速删除node_modules文件夹 解决方法:使用npm的一个名为rimraf的模块进行删除 (手动删除会特别慢,右键-删除) 官方描述:The UNIX command rm -rf for n ...
- 删除node_modules文件夹太慢
项目场景: 项目中用到node_modules,这个文件夹一般很大,很多时候需要删除node_modules文件夹 问题描述 windows下删除node_modules删除非常慢 原因分析: 原因是 ...
- Steam根目录下userdata文件夹命名规则
Steam根目录下"userdata"文件夹命名规则 userdata的初文件夹命名方式 steamID分类 steam16位ID换算32 steam64位ID换算32 userd ...
- Android各国语言和Values文件夹命名规则
Android各国语言缩写 ar 阿拉伯文 ar_AE 阿拉伯文 (阿拉伯联合酋长国) ar_BH 阿拉伯文 (巴林) ar_DZ 阿拉伯文 (阿尔及利亚) ar_EG 阿拉伯文 (埃及) ar_IQ ...
- Android各国语言缩写以及各国语言Values文件夹命名规则
Android各国语言缩写 en 英文 en_US 英文 (美国) ar 阿拉伯文 ar_AE 阿拉伯文 (阿拉伯联合酋长国) ar_BH 阿拉伯文 (巴林) ar_DZ 阿拉伯文 (阿尔及 ...
- npm 包与模块关系 下载使用包 init命令 package.json文件 node_modules文件夹 全局安装包和本地安装包 开发依赖和生产依赖
npm 了解npm npm 全称Node Package Manager(node 包管理器),它的诞生是为了解决 Node 中第三方包共享的问题. npm 不需要单独安装.在安装Node的时候,会连 ...
- npm install没有生成node_modules文件夹
问题出现背景 从svn下载了代码,然后vscode打开项目. npm install 控制台一直卡着,也不报错也没有进展,我当时还以为是在下载资源网速慢之类的原因,看了下项目里也没有生成node_mo ...
最新文章
- c语言算法6,c语言6函数和算法.ppt
- C++对象模型2——编译器生成构造函数的几种情况
- html5+开发移动app
- https协议及与http协议的比较
- 取得服务器支持的图形类型
- 我的2019年度总结
- python写cadance skill_《Cadence 16.6电路设计与仿真从入门到精通》——2.4 Design Entry CIS原理图图形界面...
- 基于Wemos D1的感应开盖垃圾桶
- 后续:为LAMP添加XCache加速
- 《凤凰项目》读书笔记一
- 杨辉三角php程序,PHP写杨辉三角实例代码
- 使用电脑热点和Fiddler对Android app进行抓包
- 绕x,y轴旋转曲面面积公式推导
- 测试小兵成长记:守业容易创业难
- (踩坑日记)Win10下安装Ubuntu18.04(包括NIVIDIA驱动安装)+主题美化+设置多cuda切换+通过anaconda下安装tensorflow1.x-gpu以及pytorch-gpu
- 《SegStereo: Exploiting Semantic Information for Disparity Estimation》
- JavaFx教程-01初识javaFX
- 微信小程序在线知识答题有奖多开版源码
- iphone粘贴关联_如何将电话号码粘贴到iPhone的电话应用程序中
- D3D9学习笔记之模板