前端工程化 - npm
什么是npm
npm的全称Node Package Manager,npm原先只是作为nodejs的包管理工具,然而随着前端社区的发展,如今npm不仅是nodejs的包管理工具,还是前端js的包管理工具。
更新npm
安装过nodejs都知道,nodejs的安装会顺便安装上npm,所以这里不讲如何安装npm。通过命令npm update -g npm
可以进行npm的更新
墙的问题
因为墙的原因,在国内使用npm会比较慢,这时候可以使用淘宝的npm镜像
(方法一) 每次使用npm的时候指定镜像,npm install -g npm --registry=https://registry.npm.taobao.org
(方法二) 安装cnpm,npm install -g cnpm --registry=https://registry.npm.taobao.org
,之后就可以使用cnpm替代npm来进行包的安装,更新和卸载
(方法三) 设置全局镜像源npm config set registry https://registry.npm.taobao.org
常用命令
npm init
初始化bower生成package.jsonnpm
install package-name
安装,如npm install express
,可以带上--save
参数,这样package.json中会写入该包的信息
npm uninstall package-name
卸载
npm update
更新
npm list
查看已安装的包列表
使用npm shrinkwrap来管理包的依赖
在项目开发中我们往往需要安装和升级相应的包,然而我们在开发的过程中使用的包版本和开发完成后进行部署的时候(npm install),包的版本可能会存在差异,这种差异可能就会导致项目运行报错。为了避免这种错误的发生,我们可以使用npm shrinkwrap
来解决这个问题。
在开发过程中,引入一个新包的流程如下
执行npm install --save package-name@package-version
进行实际开发
执行npm shrinkwrap
将代码,package.json和npm-shrinkwrap.json提交到版本仓库
在开发过程中,更新一个包的流程如下
执行npm outdated获取项目所有依赖的更新信息
执行npm install --save package-name@package-version
进行实际开发和功能测试
执行npm shrinkwrap
将代码,package.json和npm-shrinkwrap.json提交到版本仓库
在开发过程中,删除一个包的流程如下
执行npm uninstall --save package-name
进行测试
执行npm shrinkwrap
将代码,package.json和npm-shrinkwrap.json提交到版本仓库
创建私有的npm镜像
安装sinopianpm install -g sinopia
启动sinopia,执行sinopia
接着在浏览器地址栏中输入http://localhost:4873/
创建新用户
npm adduser --registry http://localhost:4873
发布包npm publish在提交包之前需要到
~/.config/sinopia/config.yaml
配置文件中删除proxy: npmjs这行配置项,这样才能将包提交到本地私有源安装包,安装包之前需要将镜像源指向私有的源,如
npm config set registry http://localhost:4873