欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

npm(node package manager)

程序员文章站 2022-03-03 18:50:25
...

npm(node包管理器)

npm是node的包管理器,所以在使用npm之前需要先安装node.js
--安装node.js
node官网-->下载最新的node安装包-->安装
具体安装流程参照:https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/00143450141843488beddae2a1044cab5acb5125baf0882000
--安装完毕
在安装node时,也顺带将npm安装好了,可以通过node -v,npm -v命令来查看node,npm的版本号


npm常见的使用场景

--允许用户从NPM服务器下载别人编写的第三方包到本地使用。
--允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
--允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。


升级npm版本

--安装在全局环境变量下

npm i npm -g

查看npm版本

npm -v

初始化

创建模块,生成一个package.json 文件,package.json 文件中包含了:该项目的 git 地址;项目简介;依赖模块;bug 汇报地址等等信息。如今很多工具都利用 package.json 来存放配置文件,比如 eslint 可以读取 package.json 中的 eslintConfig 字段来获取配置,babel 可以读取 babel 字段来获取配置。

npm init -y

安装命令行程序
   -- 全局安装
        npm install <package> –g   /   npm i –g <package>
    全局更新:
        npm update -g <package>
    全局卸载
        npm uninstall -g <package>
    查看全局目录
        npm config get prefix  -->C:\Users\damu\AppData\Roaming\npm
        npm root -g   -->C:\Users\damu\AppData\Roaming\npm\node_modules 

      运行
      --npm 待打包文件的路径  -o  打包文件放置的路径及其文件名
         eg: npm ./js/index.js -o ./js/main.js

 -- 本地安装
        npm install webpack --save  (--save:生产(上线)环境)   
        将模块写入package.josn的dependencies属性(项目应用运行时依赖)
        npm install webpack --save-dev  (--save-dev:开发环境)   
        将模块写入package.josn的devDependencies属性(项目应用开发时依赖)

      运行
      --npm脚本运行
      npm run "属性名"
      --npx包执行器运行
      npx <package> index.js -o main.js

npm脚本

npm允许在package.josn文件中,使用scripts字段定义脚本命令:

    "scripts":{
        "build": "webpack"
}

运行脚本:npm run build
查看npm可用的所有脚本 : npm run
在使用 npm run 的时候会将 node_modules/.bin 加入环境变量 PATH 中,在命令执行完了再移除,因此你不需要写成:"build": "./node_modules/.bin/webpack"


模块版本号

语义版本号分为X.Y.Z三位,分别代表主版本号、次版本号和补丁版本号
按以下规则进行版本的升级更新:
1.如果只是修复bug,需要更新Z位。

    1.2.*    ~1.2.0   每次安装的时候z位使用最新的

2.如果是新增了功能,但是向下兼容,需要更新Y位。

    2.x     ^2.0.0  每次安装的时候y位使用最新的

3.如果有大变动,向下不兼容,需要更新X位。


npx包执行器

既没有在全局安装命令行程序,也没有在本地安装命令行程序,则在执行打包命令--->npx <package> index.js -o main.js时,会先查找本地有没有命令行程序,若没有则自动下载安装命令行,但自动下载下来的文件既不在全局,也不在本地。