包管理工具:npm
新版的node.js已集成了npm,可以检测下是否有安装npm成功
可升级npm
windows做法:npm install npm -g
由于国内npm非常慢,可以用cnpm淘宝镜像来替代
安装方法:
npm install -g cnpm --registry=https://registry.npm.taobao.org
二、使用cnpm安装模块
例:安装node.js常用的web框架模块express
cnpm install express #本地安装
cnpm install express -g #全局安装
安装成功后,express 包就放在了工程目录下的 node_modules 目录中,因此在代码中只需要通过 require(‘express’) 的方式就好,无需指定第三方包路径。
var express = require('express');
安装成功后,可以在模块的目录下找到package.json文件,该文件定义包的属性,其结构为:(以express为例)
{
"name": "express",//包名
"description": "Fast, unopinionated, minimalist web framework",//包的描述
"version": "4.14.1",//包的版本号
"author": "TJ Holowaychuk <tj@vision-media.ca>",//包的作者
"contributors": [//包的其他贡献者
"Aaron Heckmann <aaron.heckmann+github@gmail.com>",
"Ciaran Jessup <ciaranj@gmail.com>",
"Douglas Christopher Wilson <doug@somethingdoug.com>",
"Guillermo Rauch <rauchg@gmail.com>",
"Jonathan Ong <me@jongleberry.com>",
"Roman Shtylman <shtylman+expressjs@gmail.com>",
"Young Jae Sim <hanul@hanul.me>"
],
"license": "MIT",
"repository": "expressjs/express",//包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。
"homepage": "http://expressjs.com/",//包的官网url
"keywords": [//关键字
"express",
"framework",
"sinatra",
"web",
"rest",
"restful",
"router",
"app",
"api"
],
"dependencies": {//依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下
"accepts": "~1.3.3",
"array-flatten": "1.1.1",
"content-disposition": "0.5.2",
"content-type": "~1.0.2",
"cookie": "0.3.1",
"cookie-signature": "1.0.6",
"debug": "~2.2.0",
"depd": "~1.1.0",
"encodeurl": "~1.0.1",
"escape-html": "~1.0.3",
"etag": "~1.7.0",
"finalhandler": "0.5.1",
"fresh": "0.3.0",
"merge-descriptors": "1.0.1",
"methods": "~1.1.2",
"on-finished": "~2.3.0",
"parseurl": "~1.3.1",
"path-to-regexp": "0.1.7",
"proxy-addr": "~1.1.3",
"qs": "6.2.0",
"range-parser": "~1.2.0",
"send": "0.14.2",
"serve-static": "~1.11.2",
"type-is": "~1.6.14",
"utils-merge": "1.0.0",
"vary": "~1.1.0"
},
"devDependencies": {
"after": "0.8.2",
"body-parser": "1.16.0",
"cookie-parser": "~1.4.3",
"ejs": "2.5.5",
"express-session": "1.15.0",
"istanbul": "0.4.5",
"marked": "0.3.6",
"method-override": "~2.3.6",
"mocha": "3.2.0",
"morgan": "~1.7.0",
"multiparty": "4.1.3",
"should": "11.2.0",
"supertest": "1.2.0",
"connect-redis": "~2.4.1",
"cookie-session": "~1.2.0",
"jade": "~1.11.0",
"vhost": "~3.0.2"
},
"engines": {
"node": ">= 0.10.0"
},
"files": [
"LICENSE",
"History.md",
"Readme.md",
"index.js",
"lib/"
],
"scripts": {
"test": "mocha --require test/support/env --reporter spec --bail --check-leaks test/ test/acceptance/",
"test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --require test/support/env --reporter spec --check-leaks test/ test/acceptance/",
"test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --require test/support/env --reporter dot --check-leaks test/ test/acceptance/",
"test-tap": "mocha --require test/support/env --reporter tap --check-leaks test/ test/acceptance/"
},
"_from": "express@4.14.1",
"_resolved": "http://registry.npm.taobao.org/express/download/express-4.14.1.tgz"
}
三、常用的npm 命令
npm install express #本地安装
npm install express -g #全局安装
npm unstall express #卸载模块
npm update express #修改模块
npm search express #搜索模块
npm ls #查看包
四、创建、发布模块
1、创建:
npm init
2、在npm资源库创建用户
先在https://www.npmjs.com/注册用户
npm adduser
Username:
Password:
Email:
3、发布模块
npm publish
如果到这步出现下面的问题:
no_perms Private mode enable, only admin can publish this module
那么可能是你用了国内的镜像地址了,只需要重新把地址注册回npmjs即可。
npm config set registry http://registry.npmjs.org
若是出现问题:
npm WARN adduser Incorrect username or password
npm WARN adduser You can reset your account by visiting:
npm WARN adduser
npm WARN adduser http://admin.npmjs.org/reset
npm WARN adduser
npm ERR! Error: forbidden may not mix password_sha and pbkdf2
npm ERR! You may need to upgrade your version of npm:
npm ERR! npm install npm -g
npm ERR! Note that this may need to be run as root/admin (sudo, etc.)
则有可能是你的npm版本太低,只要升级即可
npm install -g npm
另一个原因则可能是adduser这步,由于输入password即使输入也没有在界面上显示,所以则以为不用输入,导致用户未成功登录