1、npm是什么

npm是前端开发广泛使用的包管理工具,它让js开发者分享、复用代码更方便。可以重复的框架代码被称为包(package)或者模块(module),一个包可是是一个文件夹里放着几个文件夹,还有一个package.json文件。

npm的作用就是让我们把可复用的框架代码发布到一个地方,可以供大家一起使用。

2、安装npm

npm是依赖node.js的,先去官网https://nodejs.org/en/download/下载安装node.js,下载安装好node,npm也有了,查看版本

node -v
v10.15.3

npm -v
6.9.0

3、更新npm

npm更新速度很快,安装node附带的npm可能不是最新的,可以执行命令到最新版本npm。install,安装;-g全局安装;[email protected] 就是 <packageName>@<version>的格式

npm install [email protected] -g

4、package.json文件

一个package.json文件可以的作用

  • 作为一个描述文件,描述了你的项目依赖那些包
  • 允许我们使用“语义版本规则”,指明你项目依赖的版本
  • 让你的构建更好的与其他人共享、   

5、package.json文件创建

  • npm init就可以创建一个package.json文件,
  • npm init --yes 可以跳过所有的问题
npm init

npm init --yes

npm init会弹出很多问题,可以输入对应的内容,也可以直接enter回车使用默认值,回答所有的问题,最后输入yes就会生成package.json文件

npm与package.json详解

如果嫌弃回答,很多问题麻烦,可以直接输入npm init --yes 直接跳过问题,直接生成默认值的package.json文件

npm与package.json详解

6、package.json内容

 至少要有两部分内容

  • name:全部小写,没有空格,可以使用下划线或者横线
  • version:x.x.x的格式,符合语义化规则

  其他内容

  • description:描述信息,有助于搜索
  • main:入口文件,一般都是index.js
  • scripts:支持的脚本,默认是一个空的test
  • author:作者信息
  • license:默认是MIT
  • keywords:关键字,有助于人们使用npm search搜索时候发现你的项目
{
  "name": "y",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "keywords": [],
  "description": ""
}

可以为init命令设置一些默认值

npm set init.author.name "yunduo"

7、指定依赖的包

我们需要在package.json文件中指定项目依赖的包,别人拿到项目的时候,可以使用npm install直接下载有依赖

包依赖有2种方式

  • dependencies,在生产环境中需要用到的依赖
  • devDependencies,在开发、测试环境中用到的依赖
    {
      "name": "",
      "version": "0.1.0",
      "private": true,
      "scripts": {
      },
      "dependencies": {
        "connect-history-api-fallback": "^1.6.0",
        "vue": "^2.5.22",
        "vue-awesome-mui": "^1.7.3",
        "vue-router": "^3.0.1",
        "vuex": "^3.0.1"
      },
      "devDependencies": {
        "@vue/cli-plugin-babel": "^3.4.0",
        "@vue/cli-plugin-eslint": "^3.4.0",
        "@vue/cli-service": "^3.4.0",
        "babel-eslint": "^10.0.1",
        "eslint": "^5.8.0",
        "eslint-plugin-vue": "^5.0.0",
        "expose-loader": "^0.7.5",
     
      }
    }
    

    8、语义化版本规则

  如上package.设置有依赖dependencies的内容,例如 "vue": "^2.5.22",key是依赖包的名称,value是这个依赖包的版本,那么版本签名的^是什么意思呢,或者版本前面直接是一个*是什么意思,这就是npm的语义化版本规则。

npm包提供者需要了解npm规则,应该注意版本规范,如果打算与别人分享,应该从1.0.0版本开始,遵循如下标准

  • 补丁版本,解决了bug或者一些较小的更改,增加最后一位数字,如:1.0.1
  • 小版本,增加了新特性,同时不会影响之前的版本,增加中间一位数据,如:1.1.0
  • 大版本,大改版,无法兼容之前的版本,增加第一位数字,如:2.0.0

使用者,可以在package.json文件中写明可以接受的更新程度,

  • 接受补丁版本的更新,1.0   1.0.x   -1.0.4
  • 接受小版本的更新,1   1.x    ^1.0.4
  • 接受大版本的更新  *    x

9、安装package

目前有2种安装方式

  • grunt CLI,全局安装,如果在命令行使用,直接grunt CLI,全局安卓
  • npm install,默认安装到本地,当前项目路径安装,如果在当前项目require()加载使用,直接安装到本地,如果项目有package.json文件,运行npm install后,会查找文件中的依赖包,dependencies和devDependencies里面的所有模块,如果只安装dependencies中的内容,可以使用--production字段
    npm install
    grunt CLI

     

本地安装详细介绍

  • npm install <pageage_name>,安装指定的包。
  • npm install <[email protected]> ,安装指定的版本。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章:

  • 2021-07-28
  • 2021-10-15
  • 2022-01-18
  • 2021-07-23
  • 2019-10-12
  • 2022-12-23
猜你喜欢
  • 2022-02-17
  • 2021-12-12
  • 2021-10-28
  • 2021-08-11
相关资源
相似解决方案