NPM使用介绍NPM是随NodeJS一起安装的包管理工具,可以解决很多NodeJS代码部署中的问题。常见的使用场景如下:允许用户从npm服务器下载其他写好的第三方包,本地即可使用。允许用户从NPM服务器上下载安装他人编写的命令行程序供本地使用。允许用户将自己的包或命令行程序上传到NPM服务器供他人使用。NPM包构建1.创建一个demo目录,新建一个index.js文件index.js文件示例:module.exports.sayHello=function(){return"HelloWorld!";}2.引导包的创建。npminit项目中的json文件可以使用npminit-y命令快速创建一个npm账户。1.发布一个npm包,当然需要在npm官网注册一个账号。npm官网地址:https://www.npmjs.com2.在cmd中登录你的账号注册成功后,打开cmd进入demo目录,登录账号:npmlogin输入用户密码和邮箱地址,登录成功后,可以输入查询命令:npmwhoami来查看你酷酷的账号名~~附:刚刚注册过一段时间后,就可以发布npm包了。过段时间需要通过邮箱验证才能发布包,否则会报错(无害~~)上传npm包1.cmd进入demo目录,输入以下命令:npmpublish此时,npm报错大军要npmERR来了!发布失败PUT403npmERR!代码E403npm错误!您无权发布“演示”。您是否以正确的用户身份登录?:demo这是什么原因??与npm仓库的包名相同。改吧~~把package.json文件拿出来,把name字段的值改成如下:"name":"testfun"注意你的name字段值不能和我的一样,否则还是会Package以上错误,只是避免了相同的包名。另外需要注意的是npm对包名有限制:不能有大写字母/空格/下划线。上传成功后,可以在npm官网看到:npmpackagemanagement1。管理npm包权限查看模块拥有者$npmownerls添加发布者$npmowneradd删除发布者$npmownerrm2.撤销发布的包(在项目目录下)npmunpublish--force主要是为了安全考虑一下,在AzerNPM退出事件后,npm公布了新的版本规则,如下:版本更新小于24小时的包允许下架;超过24小时的包需要联系npm维护者;如果有npmmaintainer参与,npm会检查是否有其他包依赖该包,如果有则不允许移除;如果一个包的所有版本都被移除,npm会上传一个空的占位符包以防止将来使用作者不小心引用了恶意替代品3.npm版本控制npmversionpatchnpmversionminornpmversionmajor例如:如果我的原始项目是1.0.0版本。改成1.1.0如果是3中的情况就改成2.0.0,不过也可以在package.json中改版本~~使用npmpackage1.新建一个test目录,新建index.js和package.json目录下的文件索引.js文件代码:vartestfun=require("testfun");console.log(testfun.sayHello());2.安装testfun包npminstall--save-devtestfun3.在项目目录下的cmd中输入nodeindex.js可以看到如下效果~这个是在node环境下运行的,那么如何运行就像在一个浏览器~~这时候就需要使用browserify来扩展Browserify1。Browserify允许你使用类似node()的require来组织浏览器端的Javascript代码,通过预编译,前端Javascript可以直接使用NodeNPM安装的一些库。2.Browserify是如何工作的?Browserify从你给你的入口文件开始,找到所有调用require()方法的地方,然后沿着抽象语法树遍历侦探模块,找到所有请求的模块。每次require()调用都会传入一个字符串作为参数,browserify将字符串解析成文件路径,然后递归搜索文件,直到找到整个依赖树。对于每个被require()的文件,它的名字都会映射到内部的id,最后集成到一个javascript文件中。3.适用于项目的全局安装browserifynpminstall-gbrowserify使用browserifybrowserifyindex.js>bundle.js在测试目录新建index.html:打开index.html,即可在controller中查看效果:这样就可以使用自己的npm包了(^ω^)~~~