- 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字段对应的路径。
环境变量
当我们开发软件时,会存在不同的阶段以及环境,最常见的就是开发环境、测试环境、生产环境。
当我们在不同的环境希望有不同的变量时,我们通过配置来实现。
有两种方式:
- 设置永久环境变量
- 设置临时环境变量
当我们使用node启动程序时,会开启一个进程,计算机中的每个进程都可以访问到系统中的环境变量。
而nodejs中,我们可以通过global.process.env来访问到环境变量。(通常我们在node中对环境变量的命名都以NODE_ENV来命名)。
console.log(process.env.NODE_ENV)
文件
所谓文件,它本质上是计算机上的一个指针,指向磁盘上的数据。
当我们删除文件时,清空的不是磁盘上的数据,而是删除了指针。
所以当我们恢复文件时,只要是时间不要太长,我们就可以通过一些工具来恢复文件。
文件拷贝
拷贝文件时,计算机会在目标位置开辟一块新的磁盘空间,然后将源内容复制一份到目标位置。同时也会增加一个新的文件指针,指向这块新的磁盘空间。
硬链接
硬链接就是多个文件指针指向同一个磁盘空间。
当在一个链接修改文件内容时,其他链接也会同时修改。
在node执行时,对于node来说他就是一个普通的文件。
软链接
软链接就是创建一个指针,指向另一个文件指针。
所以当删除原本的文件指针时,软连接随之也就失效了。
当在node中执行软连接的文件时,该文件会以原来的文件指针的环境运行,所以代码中如果获取路径,会获取到原来文件指针的路径,而不是当前软连接的路径。