Node Package Manager
,即Node 的包管理工具。初始化包:npm init
,创建一个空目录,然后以此目录作为工作目录 启动命令行工具 ,执行 npm init。
npm init 命令的作用是将文件夹初始化为一个『包』, 交互式创建 package.json
文件。
package.json
是包的配置文件,每个包都必须要有 package.json
。
{
"name": "1-npm", #包的名字
"version": "1.0.0", #包的版本
"description": "", #包的描述
"main": "index.js", #包的入口文件
"scripts": { #脚本配置
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "", #作者
"license": "ISC" #开源证书
}
package name
( 包名 ) 不能使用中文、大写,默认值是文件夹的名称 ,所以文件夹名称也不能使用中文和大写。package.json
可以手动创建与修改npm init -y
或者 npm init --yes
极速创建 package.json
下载安装包:npm install <包名>
或npm i <包名>
node_modules
文件夹存放下载的包。package-lock.json
包的锁文件 ,用来锁定包的版本。使用下载好的包:const A = require('A')
- 开发环境是程序员
专门用来写代码
的环境,一般是指程序员的电脑,开发环境的项目一般只能程序员自己访问。- 生产环境是项目
代码正式运行
的环境,一般是指正式的服务器电脑,生产环境的项目一般每个客户都可以访问。
npm i
,通过该命令可以依据 package.json 和 packagelock.json 的依赖声明安装项目依赖。【node_modules 文件夹大多数情况都不会存入版本库(文件太多了,体积太大了)】npm i -g nodemon
全局安装的命令不受工作目录位置影响
可以通过 npm root -g
可以查看全局安装包的位置。
不是所有的包都适合全局安装 , 只有全局类的工具才适合,可以通过查看包的官方文档来确定安装方式 ,这里先不必太纠结。
nodemon
可以代替node
进行运行,且在修改后自动运行。
npm i <包名@版本号>
npm remove uniq
npm remove -g nodemon
package.json
中的 scripts
属性。npm run 别名
执行命令。npm start
。npm start
是项目中常用的一个命令,一般用来启动项目。
- cnpm 是一个淘宝构建的 npmjs.com 的完整镜像,也称为『淘宝镜像』,网址
- cnpm 服务部署在国内阿里云服务器上 , 可以提高包的下载速度。
- 官方也提供了一个全局工具包 cnpm ,操作命令与 npm 大体相同
npm install -g cnpm --registry=https://registry.npmmirror.com
直接配置:npm config set registry https://registry.npmmirror.com/
工具配置
检查是否配置成功:检查 registry 地址是否为 https://registry.npmmirror.com/ , 如果是则表明成功。
yarn 是由 Facebook 在 2016 年推出的新的 Javascript 包管理工具,官方网址。yarn 官方宣称的一些特点:
- 速度超快:yarn 缓存了每个下载过的包,所以再次使用时无需重复下载。 同时利用并行下载以最大化资源利用率,因此安装速度更快。
- 超级安全:在执行代码之前,yarn 会通过算法校验每个安装包的完整性。
- 超级可靠:使用详细、简洁的锁文件格式和明确的安装算法,yarn 能够保证在不同系统上无差异的工作。
安装:npm i -g yarn
常用命令
配置淘宝镜像:yarn config set registry https://registry.npmmirror.com/
创建文件夹,并创建文件 index.js
, 在文件中声明函数,使用 module.exports
暴露
npm 初始化工具包,package.json 填写包的信息 (包的名字是唯一的)
激活账号 ( 邮箱验证码 )
修改为官方的官方镜像(淘宝镜像是只读镜像不能上传)
nrm ls
nrm use npm
命令行下 npm login
填写相关用户信息
命令行下 npm publish
提交包
npm publish
npm unpublish --force
。删除包需要满足一定的条件