前端工程化 - npm
2016-04-30 15:13
330 查看
什么是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[/code]
常用命令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[/code]
发布包npm publish
在提交包之前需要到~/.config/sinopia/config.yaml配置文件中删除proxy: npmjs这行配置项,这样才能将包提交到本地私有源
安装包,安装包之前需要将镜像源指向私有的源,如npm config set registry http://localhost:4873[/code]
相关文章推荐
- HTML5——行走日记
- IClient for js开发之地图的加载
- AngularJS五特性
- js自娱自乐
- js闭包只让函数执行一次
- 百度地图 API 使用
- 父子窗口之间的调用
- Jquery学习知识点
- CSS控制鼠标形状
- C#操作xml SelectNodes,SelectSingleNode总是返回NULL 与 xPath 介绍
- jquery 应用小结
- Java IO系统——NIO之Buffer、Channel和Charset类
- XHTML总结
- leetcode 24. Swap Nodes in Pairs(链表)
- HTML5全局属性和事件
- javascript笔记
- 【转载】JS监听DOM结构变化
- javascript---学习笔记
- 『在线工具』 基于 xsser.me 源码 + BootStrap 前端 的 XSS 平台
- 【.NET】使用HtmlAgilityPack抓取网页数据