6.node中的配置文件

package.json

每一个项目都要有一个package.json 文件(包括描述文件,就像产品说明书一样)
这个文件可以通过npm init 自动初始化出来

D:\code\node中的模块系统>npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install <pkg>` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
package name: (node中的模块系统)
Sorry, name can only contain URL-friendly characters.
package name: (node中的模块系统) cls
version: (1.0.0)
description: 这是一个测试项目
entry point: (main.js)
test command:
git repository:
keywords:
author: xiaochen
license: (ISC)
About to write to D:\code\node中的模块系统\package.json:

{
  "name": "cls",
  "version": "1.0.0",
  "description": "这是一个测试项目",
  "main": "main.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "xiaochen",
  "license": "ISC"
}


Is this OK? (yes) yes

对于目前来讲,最有用的是dependencies选项,可以用来帮助我们保存第三方包的依赖信息

如果 node_modules 删除了也不用担心,只需要在控制面板中 npm install 就会自动吧package.json中的dependencies 中所有的依赖项全部都下载回来

  • 建议每个项目的根目录下都有一个package.json文件
  • 建议执行npm install 包名的时候都加上 --save 选项,目的是用来保存依赖信息

package.json和package-lock.json

npm 5 以前是不会有package-lock.json这个文件
npm 5 以后才加入这个文件

当你安装包的时候,npm 都会生成或者更新 package-lock.json 这个文件

  • npm5以后的版本安装都不要加 --save 参数,他会自动保存依赖信息
  • 当你安装包的时候,会自动创建或者更新 package-lock.json 文件
  • package-lock.json 这个文件会包含 node_modules 中所有包的信息(版本,下载地址。。。。)
    • 这样的话重新npm install 的时候速度就可以提升
  • 从文件来看,有一个lock称之为锁
    • 这个lock 使用来锁版本
    • 如果项目依赖了1.1.1版本
    • 如果你重新install其实会下载最新版本,文不是1.1.1
    • package-lock.json 的另外一个作用就是锁定版本号,防止自动升级

path路径操作模块

参考文档: https://nodejs.org/docs/latest-v13.x/api/path.html.

  • path.basename:获取路径的文件名,默认包含扩展名
  • path.dirname:获取路径中的目录部分
  • path.extname:获取一个路径中的扩展名部分
  • path.parse:把路径转换为对象
    • root:根路径
    • dir:目录
    • base:包含后缀名的文件名
    • ext:后缀名
    • name:不包含后缀名的文件名
  • path.join:拼接路径
  • path.isAbsolute:判断一个路径是否为绝对路径

Node中的其他成员(_dirname,_filename)

每个模块中,除了require,exprots 等模块相关的API之外,还有两个特殊的成员:

  • _dirname , 是一个成员,可以用来动态获取当前文件所属目录的绝对路径
  • _filename, 可以用来动态的获取当前文件的绝对路径
  • _dirname 和filename 是不受执行node命令所属路径影响的

在文件操作中,使用相对路径是不可靠的,因为node中文件操作的路径别设计为相对于执行node命令所处的路径

所以为了了解这个问题,只需要把相对路径变为绝对路径(绝对路径不收任何影响)就可以了

就可以使用_dirname 或者 _filename 来帮助我们解决这个问题

在拼接路径的过程中,为了米面手动凭借带来的一些低级错误,推荐使用path.json()来辅助拼接

var fs = require('fs');
var path = require('path');

// console.log(__dirname + 'a.txt');
// path.join方法会将文件操作中的相对路径都统一的转为动态的绝对路径
fs.readFile(path.join(__dirname + '/a.txt'),'utf8',function(err,data){
	if(err){
		throw err
	}
	console.log(data);
});


// 补充:模块中的路径标识和这里的路径没关系,不受影响(就是党对于文件模块)
// 注意:模块中的路径标识和文件操作中的相对路径标识不一致
//      模块中的路径标识就是相对于当前文件模块,不受node命令所处路径影响

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值