Published on

npm

npx

当我们下载了一些第三方包的时候,包里边自带一些命令,由于这些命令不在环境变量中,所以无法直接使用。

npx就是为了解决这个问题而存在的。

这些自带的命令,会存放在当前项目下的node_modules/.bin目录,如果存在,则直接执行。

nodejs中导入包的底层逻辑

const fs = require('fs') // 第一个导入
const lodash = require('lodash') // 第二个导入

当我们导入第三方库时,如果路径不是以./..//开头,则会在当前项目下的node_modules目录中查找。

首先会查找是否有:node_modules/lodash.js,如果有,则直接导入,如果没有会查找:node_modules/lodash/入口文件。当

入口文件就是package.json中的main字段对应的路径。

环境变量

当我们开发软件时,会存在不同的阶段以及环境,最常见的就是开发环境测试环境生产环境

当我们在不同的环境希望有不同的变量时,我们通过配置来实现。

有两种方式:

  1. 设置永久环境变量
  2. 设置临时环境变量

当我们使用node启动程序时,会开启一个进程,计算机中的每个进程都可以访问到系统中的环境变量。

而nodejs中,我们可以通过global.process.env来访问到环境变量。(通常我们在node中对环境变量的命名都以NODE_ENV来命名)。

console.log(process.env.NODE_ENV)

文件

所谓文件,它本质上是计算机上的一个指针,指向磁盘上的数据。

当我们删除文件时,清空的不是磁盘上的数据,而是删除了指针。

所以当我们恢复文件时,只要是时间不要太长,我们就可以通过一些工具来恢复文件。

文件拷贝

拷贝文件时,计算机会在目标位置开辟一块新的磁盘空间,然后将源内容复制一份到目标位置。同时也会增加一个新的文件指针,指向这块新的磁盘空间。

硬链接

硬链接就是多个文件指针指向同一个磁盘空间。

当在一个链接修改文件内容时,其他链接也会同时修改。

在node执行时,对于node来说他就是一个普通的文件。

软链接

软链接就是创建一个指针,指向另一个文件指针。

所以当删除原本的文件指针时,软连接随之也就失效了。

当在node中执行软连接的文件时,该文件会以原来的文件指针的环境运行,所以代码中如果获取路径,会获取到原来文件指针的路径,而不是当前软连接的路径。

上一篇