node.js npm 安装和基本使用
·
npm是啥玩意???
npm其实是Node.js的包管理工具(package manager)。为啥我们需要一个包管理工具呢?其实是因为我们在Node.js上开发时,会用到很多别人写的JavaScript代码。如果要使用别人写的某个包,每次都要根据名称搜索一下官方网站,下载代码,解压,script 引入,这个过程非常繁琐 。这个时候一个集中管理的工具出现了:大家都把自己开发的模块打包,然后放到npm官网上,如果要使用,直接通过npm安装就可以直接用,不用管代码存在哪,应该从哪下载。更重要的是,如果我们要使用模块A,而模块A又依赖于模块B,模块B又依赖于模块X和模块Y,npm可以根据依赖关系,把所有依赖的包都下载下来并管理起来。否则,靠我们自己手动管理,肯定既麻烦又容易出错。
大家如果是才开始对前端或者vue框架进行学习和使用,不是很清楚npm的使用,今天将和大家一起来简单学习一下安装npm的方法和如何使用npm。了解一下npm的常用命令和基本的操作。由于npm和node.js是捆绑安装的,所以我们安装node.js就可以了。
一、安装NodeJS的安装与使用-百度经验
npm作用:
1、安装和删除前段node_modules包中的依赖
2、运行我们的前端项目
安装链接:Node.js — 在任何地方运行 JavaScript
检测是否安装成功:去cmd中输入node -v 检测是否安装成功(如果显示版本号就代表安装成功)
基本的npm用法:
# 查看 npm 的版本
$ npm -v //<< 安装成功会返回版本号
# 查看各个命令的简单用法
$ npm -l
# 查看 npm 命令列表
$ npm help
# 查看 npm 的配置
$ npm config list -l
二、npm init 创建模块
$ npm init
npm init: 用来初始化生成一个新的 package.json 文件。它会向用户提问一系列问题,如果觉得不用修改默认配置,一路回车就可以了。以上创建好之后就可以在Package.json直接看了 还可以在里面修改更新。
当我们在一个空文件 npm init 初始化的时候这个文件就诞生了,如下所示:
如果有package.json 你就可以直接下载安装这些依赖包。包文件就会出现在node_modules里面。
express 的 package.json包进行简单介绍:
{
"name": "express", //包名
"description": "Fast, unopinionated, minimalist web framework for Node.js", //包的地址
"version": "4.18.2", //包的版本号
"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>"
],
"license": "MIT", // 你应该为你的模块制定一个协议,让用户知道他们有何权限来使用你的模块,以及使用它有哪些限制。
"repository": { //包代码存放的位置
"type": "git",
"url": "git+https://github.com/expressjs/express.git"
},
"main": "index.js",
"dependencies": { //依赖包列表 如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
"body-parser": "1.20.1",
"content-disposition": "0.5.4",
"content-type": "~1.0.4",
"cookie": "0.5.0",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
"depd": "2.0.0",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"finalhandler": "1.2.0",
"fresh": "0.5.2",
"http-errors": "2.0.0",
"merge-descriptors": "1.0.1",
"methods": "~1.1.2",
"on-finished": "2.4.1",
"parseurl": "~1.3.3",
"path-to-regexp": "0.1.7",
"proxy-addr": "~2.0.7",
"qs": "6.11.0",
"range-parser": "~1.2.1",
"safe-buffer": "5.2.1",
"send": "0.18.0",
"serve-static": "1.15.0",
"setprototypeof": "1.2.0",
"statuses": "2.0.1",
"type-is": "~1.6.18",
"utils-merge": "1.0.1",
"vary": "~1.1.2"
},
"devDependencies": { //开发环境的依赖包
"after": "0.8.2",
"connect-redis": "3.4.2",
"cookie-parser": "~1.4.6",
"cookie-session": "1.4.0",
"ejs": "3.1.9",
"eslint": "8.40.0",
"express-session": "1.17.3",
"hbs": "4.2.0",
"istanbul": "0.4.5",
"marked": "4.3.0",
"method-override": "3.0.0",
"mocha": "10.2.0",
"morgan": "1.10.0",
"multiparty": "4.2.3",
"pbkdf2-password": "1.2.1",
"should": "13.2.3",
"supertest": "6.3.3",
"vhost": "~3.0.2"
},
"scripts": { //项目的生命周期个各个环节需要执行的命令。key是生命周期中的事件,value是要执行的命令。
"lint": "eslint .",
"test": "mocha --require test/support/env --reporter spec --bail --check-leaks test/ test/acceptance/",
"test-ci": "mocha --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/"
},
"engines": { //// node版本范围
"node": ">= 0.10.0"
}
}
三、npm set 设置环境变量
npm set
如果我们要修改环境变量,使用该命令。
1. 设置 npm 镜像源(解决国内下载慢的问题)
默认 npm 镜像源在国外,可切换为国内镜像:
npm set registry https://registry.npmmirror.com
如果这里镜像源证书过期的可以看这个文章的方法更换:npm镜像查看和修改_查看npm镜像源-CSDN博客
2. 设置用户信息(用于发布包)
$ npm set init-author-name 'my name jerry'
//但是仅仅只是执行了已修改,这时候的 Package.json并没有发生变化
//要设置后执行init才是真正修改成功
$ npm init
四、npm search 搜索模块
$ npm search <搜索词> [-g]
npm search 命令用于搜索npm仓库,它后面可以跟字符串,也可以跟正则表达式。
五、npm install 安装模块
1. 安装生产依赖(会写入 package.json 的 dependencies 中)
npm install 模块名
//可简写成 npm i 模块名
例子:npm install express
2. 安装开发依赖(会写入 package.json 的 devDependencies 中)
npm install 模块名 --save-dev
//或者可写为npm i 模块名 -D
示例:安装 webpack 作为开发依赖,执行 npm install webpack --save-dev 或 npm i webpack -D。
3. 安装指定版本的模块
npm install 模块名@版本号
//eg: npm install gulp@3.9.1
//示例:安装 axios 的 1.12.2 版本,执行 npm install axios@1.12.2。
4. 安装项目所有依赖(根据 package.json 和 package-lock.json)
在项目根目录(包含 package.json 的目录)执行 npm install,会自动安装文件中声明的所有依赖。
六、npm uninstall 卸载模块
$ npm uninstall <name> [-g]
eg: npm uninstall gulp --save-dev
npm i gulp -g
如何查看是否卸载完成:
1.你可以到 /node\_modules/ 目录下查看包是否还存在。
2.或者使用以下命令查看:npm ls 查看安装的模块
七、npm update 更新模块
npm update express
有些包是全局安装了,在项目里面只需要引用即可
八、npm link 引用模块
$ npm link [<@scope>/]<pkg>[@<version>]
//eg: 引用 npm link gulp gulp-ssh gulp-ftp
//eg: 解除引用 npm unlink gulp
九、npm run 执行脚本
package.json 的 scripts 字段,可以用于指定脚本命令,供 npm 直接调用。 npm run 会创建一个Shell,执行指定的命令。
基本用法
1.在 package.json 中定义脚本先在项目的 package.json 文件中,通过 scripts 字段声明脚本,格式为 {"脚本名": "脚本命令"}。例如:
{
"scripts": {
"start": "node index.js", // 启动项目
"dev": "nodemon index.js", // 开发模式(自动重启)
"build": "webpack --mode production", // 打包项目
"test": "jest" // 运行测试
}
}
其中, 脚本名 是自定义的(如 start、 dev), 脚本命令 可以是任何终端命令(如 node、 webpack、 echo 等)。
2.执行脚本在终端(命令提示符 / CMD)中,进入项目根目录(包含 package.json 的目录),通过 npm run 脚本名 执行对应脚本:
npm run start # 执行 start 脚本(运行 node index.js)
npm run dev # 执行 dev 脚本(运行 nodemon index.js)
npm run build # 执行 build 脚本(运行 webpack 打包)
部分常用脚本名可以省略 run 直接执行:
npm start # 等价于 npm run start
npm test # 等价于 npm run test
脚本传参
如果需要给脚本传递参数,在脚本名后加 -- 参数 即可。例如:
npm run serve -- --port 8081 # 给 serve 脚本传递 --port 8081 参数
脚本执行顺序
- 并行执行(同时运行多个脚本):用 & 分隔(Windows 需用 cmd /c "命令1 & 命令2")
"scripts": {
"dev": "npm run watch & npm run serve"
}
- 串行执行(前一个完成再执行下一个):用 && 分隔
"scripts": {
"build": "npm run lint && npm run compile" // 先 lint 再编译
}
示例:实际开发场景
假设你用 Node.js 写了一个简单的 HTTP 服务( index.js):
// index.js
const http = require('http');
http.createServer((req, res) => {
res.end('Hello World!');
}).listen(3000, () => {
console.log('Server running on port 3000');
});
在 package.json 中定义启动脚本:
{
"scripts": {
"start": "node index.js"
}
}
通过 npm run 执行脚本,可以将复杂的命令封装成简单的脚本名,统一项目的操作方式,尤其在团队协作中非常实用。
更多推荐
所有评论(0)