![](https://img-blog.csdnimg.cn/b4fd82f9960348bb81cf7a7f66d66a39.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
node
文章平均质量分 74
node是前端开发中必不可少的一部分,本专栏会不断更新node相关知识如:npm、fs、node模块化、require原理等等。
GMLGDJ
当你的才华还撑不起你的野心的时候,你就应该静下心来学习。当你的能力还驾驭不了你的目标的时候,你就应该沉下心来历练。问问自己,想要怎样的人生。
展开
-
cnpm的简介与使用
由于rejistry仓库服务器位于国外就会导致包的获取速度较慢或获取不到(当然此类问题较少),后来阿里就实现了镜像服务器cnpm,cnpm会大约每十分钟从register仓库克隆一份到taobao本地仓库,使用cnpm后就会从taobao仓库获取包而不是register仓库获取。通过上述方法安装完成后我们只需将 npm 改为 cnpm 就可以从淘宝镜像安装package了。了解了npm原理后,我们可以知道npm是从rejistry仓库。第二,担心某天淘宝的镜像挂了或者不维护了,又要改来改去;原创 2023-03-09 13:56:55 · 2020 阅读 · 1 评论 -
npm install 原理
作为前端开发人员,开发项目的时候,会用到很多很多的插件(包/依赖),而且插件的版本是固定的,所以当团队合作的时候,就需要整合所有相关的包(工作量非常大,尤其是在以后的框架项目中,用到的插件成千上万个),那么npm就是一个管理这些包的工具,所以一会后的项目基本使用 npm 去管理项目的依赖。需要将项目变成node项目(因为node项目中才能使用npm管理依赖),在项目文件夹内打开命令行工具执行 npm init ,会自动生成一个 package.json 文件,这个文件就是node项目的标志。原创 2023-03-09 13:48:35 · 1593 阅读 · 0 评论 -
npx使用及原理
反过来,如果忽略本地的同名模块,强制安装使用远程模块,可以使用--ignore-existing参数。比如,本地已经全局安装了create-react-app,但还是想使用远程模块,就用这个参数。npx 的原理很简单,就是运行的时候,会到先到 node_modules/.bin路径 中查找命令如果没有再去 全局环境变量$PATH 里面,检查命令是否存在。如果想让 npx 强制使用本地模块,不下载远程模块,可以使用--no-install参数。Node安装后自带npm模块,可以直接使用npx命令。原创 2023-03-09 11:22:08 · 4170 阅读 · 1 评论 -
详解package.json和package-lock
在我们执行 npm init 时会问几个基本问题,如包名称、版本号、作者信息、入口文件、仓库地址、关键字、描述、许可协议等,多数问题已经提供了默认值,你可以在问题后敲回车接受默认值,以下是 package.json常见字段解析 和 package-lock.json的dependencies:(通常我们不会关注package-lock.json的内容,所以这里也就不做赘述了,这里只讲一下其中 dependencies 属性)^x.y.z:表示x是保持不变的,y和z永远安装最新的版本;原创 2023-03-09 11:17:28 · 3592 阅读 · 0 评论 -
node模块化 和 require原理
自执行函数是前端模块化的实现方案之一,在早期前端没有模块化系统的时代,自执行函数可以很好的解决命名空间的问题,并且模块依赖的其他模块都可以通过参数传递进来。第二个参数就是函数的结束部分。node中并没有选用他们来实现模块化,eval有一个致命的问题,就是容易被不属于它的变量所影响,而未使用new Function()的原因未知,如下str字符串中并没有定义a,但是确可以使用上面定义的a变量,这显然是不对的,在模块化机制中,str字符串应该具有自身独立的运行空间,自身不存在的变量是不可以直接使用的。原创 2023-03-09 11:11:51 · 1702 阅读 · 0 评论 -
require与import的区别
我们在 node 中使用 babel 支持ES6(在 node 当中,比如 node.js 代码,也不能直接使用 import 来导入,必须使用 babel 支持才能使用 import 语法),实际上也是将 ES6 转码为 ES5 再执行,import 语法实际上会被转码为 require。module.exports后面的内容是什么,require的结果就是什么,比如对象、数字、字符串、函数等,然后再把require的结果赋值给某个变量,它相当于module.exports的传送门。原创 2023-03-09 10:53:51 · 898 阅读 · 0 评论 -
删除所有node_modules和package-lock配置文件
npkill概述:一个可以轻松找到并删除旧的和沉重的node_modules文件夹的插件(也可以用来删除其他文件)我们可以直接使用以下命令来删除当前目录下所有的 node_modules。通过以下命令删除其他文件如 package-lock.json。有一部分paceage-lock不是npm生成的删除时需要注意。本章就介绍到这里更多使用请看文章开头的官网!首先我们通过以下命令安装npkill插件。原创 2023-03-09 10:42:29 · 1408 阅读 · 0 评论 -
npm、yarn、pnpm的优劣与pnpm的原理与使用
使用 npm 时,依赖每次被不同的项目使用,都会重复安装一次。 而在使用 pnpm 时,依赖会被存储在内容可寻址的存储中,所以:• 如果你用到了某依赖项的不同版本,只会将不同版本间有差异的文件添加到仓库。 例如,如果某个包有100个文件,而它的新版本只改变了其中1个文件。那么 pnpm update 时只会向存储中心额外添加1个新文件,而不会因为仅仅一个文件的改变复制整新版本包的内容。• 所有文件都会存储在硬盘上的某一位置。 当软件包被被安装时,包里的文件会硬链接到这一位置,而不会占用额外的磁盘空间。原创 2023-03-09 10:38:06 · 2764 阅读 · 0 评论