npm的使用
NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
- 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
- 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
- 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
npm安装
本地安装:
将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。可以通过 require() 来引入本地安装的包
$ npm install <Module Name>
全局安装:
将安装包放置在如下位置:Linux: /usr/localWindows : C:\Users\Administrator\node_modules注意:如果是在windows下,需要设置用户Path=C:\Users\Administrator\AppData\Roaming\npm。如不设置,安装的命令无法执行,路径找不到
$ npm install -g <Module Name>
package.json
这个文件用来管理本地安装的npm包
# 在当前模块目录下生产package.json文件
$ npm init
# 安装当前package.json中定义的模块
$ npm install
package.json中几个基本属性:
- name:包的名称
- version:版本号,"x.x.x"的格式,每次发布都需要与上一次版本号不同
- main:入口文件,一般为index.js
- scripts:支持的脚本,start和test是默认的,在命令行输入
npm start/npm test就可以运行,其他脚本为npm run xxx运行,通过这个方法可以使用安装在本地的包 - dependencies:在生产环节中需要用到的依赖,安装一个包时,添加了参数
--save,则保存到这里 - devDependencies:在开发、测试环境中用到的依赖,安装一个包时,添加了参数
--save-dev,则保存到这里
require 模块的查找路径
node.js中模块可以分为核心模块和文件模块
核心模块引用秩序require即可,如require('fs')
文件模块,则是js文件、json文件或.node文件。在引用时需要加上文件路径。
如果没有加路径则会在当前目录的node_modules下找,找不到到上一级目录的node_modules下找,直到根目录,并不会路过全局安装时包所在的目录
切换源
方案1.
npm install -g ppt-cli --registry=https://registry.npm.taobao.org
方案2.
npm install -g
nrm nrm ls
nrm use taobao
nrm use npm
npm卸载
$ npm uninstall <Module Name>
npm scripts的使用
我们已经在上面的内容知道package.json中的script属性,这个属性可以帮助我们完成很多辅助功能
{
"scripts": {
"css:autoprefixer": "postcss -u autoprefixer -r dist/css/*",
"css:compress": "csso in.css --output out.css",
"js:lint": "eslint src/js",
"js:uglify": "mkdir -p dist/js && uglifyjs src/js/*.js -m -o dist/js/app.js",
"image:imagemin": "app=imagemin-cli npm run check; imagemin src/images dist/images -p",
"server": "browser-sync start --server --files 'dist/css/*.css, dist/js/*.js'",
"watch": "onchange 'src/js/*.js' -- npm run css:compress",
"start": "npm run server"
}
}
npm run css:autoprefixer
npm start
开发并发布Node.js的package
开发发布包
写好代码,在当前目录运行npm init输入包名,版本号,以及其他信息,使用默认信息则直接回车
接着执行
npm login
# 输入 www.npmjs.com 网站的登录用户名
# 输入 www.npmjs.com 网站的登录密码
# 输入 www.npmjs.com 网站的邮箱
如果登录失败,确认用户名密码是否正常,确认 npm 的 register 是否是 npm 官方地址
接着执行npm publish,这样就可以在npm上看到你发布的包了
测试发布的包
另建一个文件夹,在当前目录安装自己发布的包,新建一个文件使用自己的包
开发命令行工具
修改 package.json,加入 bin 字段。修改版本号
{
"name": ...,
"version": "1.0.1",
"main": ...,
"bin": {
"xxxx": "./index.js" //xxxx就可以在命令行使用
}
}
重新执行npm publish
测试命令行工具
npm install -g myPackage
xxxx // 刚刚在bin中写入的命令行工具