NPM 和 package.json 文件简介

NPM 和 package.json 文件简介

一、NPM不只是包管理器

1. NPM简介

NPM是Node.js的官方的包管理工具,当你node.js安装好了之后,npm也随着安装好,通过npm -v 可以看到当前安装的版本号;

  • 截至目前存放了已超过200完的开源包,比如Express、Axios、react、vue等
  • 它可以帮你下载你想要的包,也可以上传你自己的包,帮你管理你项目中间的依赖
  • 快速生成脚手架,可以通过npm init快速生成package.json

2. 常见NPM命令

js 复制代码
npm init -y //初始化项目,会生成package.json
npm install express //安装express依赖,会记录再dependencies中
npm install --save-dev jest //安装开发依赖,开发测试或者打包中使用
npm install -g nodemon //全局安装依赖包,在任何地方都可以使用
npm uninstall express //删除包,也同时会在package.json中删除
npm install //读取package.json中需要的包,然后全部安装到node_modules中

3.node_modules是什么

执行npm install的时候会将所有的依赖包都安装到这个文件夹中,这个文件夹通常非常的庞大,在使用git提交的时候千万不要将这个文件夹提交上去,可以通过.gitignore去忽略它;

二、package.json项目的"说明书"

package.json是一个json格式的文件,它一般存在于项目的根目录,描述了项目的元信息以及依赖关系。

1.package.json的基本结构

js 复制代码
{
  "name": "my-awesome-project",  //项目名称,必填
  "version": "1.0.0", //项目版本,必填
  "description": "这是我学习 Node.js 的第一个项目",  //项目描述
  "main": "index.js", //指定项目的入口
  "scripts": {   //最实用字段,定义一些脚本命令,可以使用npm run <脚本名称>
    "start": "node index.js",
    "test": "jest"
  },
  "keywords": ["nodejs", "tutorial"],
  "author": "你的名字",  //项目作者
  "license": "MIT",
  "dependencies": {   //项目运行时候需要的包
    "express": "^4.18.2"
  },
  "devDependencies": {   //项目开发阶段需要的包
    "jest": "^29.5.0"
  }
}

三、实际安装常用的包

1.slugify

它是一个将任何文本转换成URL友好的slug短链接,我们现在来安装它

js 复制代码
npm i sluify
  • 安装好了我们就可以去使用它
js 复制代码
const slugify = require('slugify'); //引入模块
    const slugs = slugify('HELLO WORLD',{lower:true});//将传入的字符串小写
    console.log(slugs);

2. nodemon

当我们修改代码的时候,每次都需要手动重启服务器,这个工具就是为了让我们解决这个问题的,但是目前node.js已经有了--watch模式,nodemon已经不太常用了;这里简单描述一下

js 复制代码
//全局安装
npm i -g nodemon --save-dev
  • 然后我们可以将nodemon设置为默认的脚本
js 复制代码
 "scripts": {
    "start": "nodemon index.js"
  },
  • 这样我们通过npm start命令就可以直接使用nodemon启动服务器

相关推荐
青木9601 小时前
前后端开发调试运行技巧
linux·服务器·前端·后端·npm·uv
幻影七幻1 小时前
js中send的作用和使用 $.ajax的作用
开发语言·前端·javascript
Rabbit_QL1 小时前
npm 不是“前端的包管理器“—它是 Node.js 的
前端·npm·node.js
草履虫君1 小时前
原电脑只运行了:npm install -g openclaw 要把它迁移到一个新电脑,怎么操作,菜鸟教程
经验分享·ai·npm
jinanwuhuaguo1 小时前
OpenClaw执行奇点——因果链折叠与责任悬置的时间哲学(第十九篇)
前端·人工智能·安全·重构·openclaw
为美好的生活献上中指1 小时前
本地虚拟机部署redis集群
前端·redis·ubuntu·bootstrap·html·redis集群
ConardLi2 小时前
开源我的 GPT-Image2 生图 Skill,附大量玩法指南
前端·人工智能·后端
我是Superman丶2 小时前
Antigravity Retry 自动重试脚本
前端·javascript·vue.js
是大强2 小时前
nvm安装node成功npm失败
前端·npm·node.js