node.js学习笔记(一)package.json

package.json文件的创建


在一个node项目中,package文件可以直接创建package.json后编写里面的内容,也可以通过使用npm init来初始化(没有时即为创建)。

直接创建很容易,直接创建名为package.json文件后编写里面的内容就可以了

使用npm init创建时,会以一个问答的形式创建,通过“回答问题”来给对应的键名赋键值。

这里输入的问答会将内容写入最后的package.json文件,如果不填入内容的话会使用默认的内容或者为空,package会使用当前文件夹的名字,但名字不能为中文,如果输入错误会重新“提问”一次。

一开始使用时,其实只需要写入package name,后面的内容可以一直按回车跳过(如果当前文件夹的名字符合项目名字要求的话,也可以直接按回车跳过)。最后的json文件内容如下

{
  "name": "demo",
  "version": "1.0.0",
  "description": "the first demo",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

package.json初始属性含义


以上面的代码来展示属性含义

{
  "name": "demo", // 项目名称,只能由小写字母,数字和下划线组成
  "version": "1.0.0", // 版本号
  "description": "the first demo", // 对项目的描述
  "main": "index.js", // 入口文件
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1" // 指定项目生命周期各个环节要做的内容
  },
  "author": "", // 项目作者信息
  "license": "ISC" // 项目许可协议
}

使用package.json导入模块


在成功创建了package.json文件后,可以通过npm install来把依赖的模块导入

首先我们可以通过npm install mode -s 来导入需要的模块(这里的mode指代模块名,可以在https://www.npmjs.com/上查找对应的模块名),同时将该模块的名字和版本号写入pacakge.json文件中(如果此时没有创建package.json文件的话,这里会自动创建),这里以导入connect为例

导入的模块会在node_modules文件夹里面,导入模块后增加了node_modules文件夹和package-lock.json文件(如果原来没有的话),package.json文件修改为下面代码

{
  "name": "demo",
  "version": "1.0.0",
  "description": "the first demo",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "connect": "^3.6.6"
  }
}

当我们要在另一个项目中导入当前项目所使用的模块时,我们可以将package.json文件中的dependencies属性复制到新的项目中的这个属性里面(如果没有这个属性就新建这个属性),然后通过npm install就可以将之前的项目中依赖的模块导入到当前项目中。

使用npm install导入package.json文件中注明的模块,可能会更新部分内容,但不会重新导入重复内容。

dependencies属性版本号标志


nodejs所依赖的这些模块更新迭代的速度很快,要使用一个模块,需要确定自己所要使用的版本号,但有时候又不一定能使用明确的版本号,就需要使用一些版本号的标志,以connect为例

1.不带版本号标志

当我们不带任何特殊的符号,写入一个明确的版本号时,就一定会使用该版本号,如果输入错误的版本号,在使用npm install时会报错

"dependencies": {
    "connect": "1.0.0"//明确限制版本为1.0.0
}

2.^

使用和当前写入的版本号兼容的版本,如果没有的话就寻找与之最近的版本

"dependencies": {
    "connect": "^1.0.0"//使用和1.0.0兼容的版本,如果没有则使用和1.0.0最接近的版本
}

3.~

使用近似于写入的版本号的版本,如果没有就寻找与之最近的版本,在实际使用上与^相同

"dependencies": {
    "connect": "~1.0.0"//使用和1.0.0近似的版本,如果没有则使用和1.0.0最接近的版本
}

4.latest

使用最新的版本

"dependencies": {
    "connect": "latest"
}

5.*

使用任意版本,但会从最新的版本开始寻找,实际使用和latest一样

"dependencies": {
    "connect": "*"
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值