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启动服务器

相关推荐
IT_陈寒3 小时前
Redis缓存击穿把我整不会了,原来还有这手操作
前端·人工智能·后端
idcu3 小时前
深入 Lyt.js 组件系统:L2 渲染引擎层的核心
前端·typescript
Wang15303 小时前
js核心概念
json
这是程序猿3 小时前
Spring Boot自动配置详解
java·大数据·前端
文心快码BaiduComate3 小时前
干货|Comate Harness Engineering工程实践指南
前端·后端·程序员
还有多久拿退休金3 小时前
一张栈的图,治好你面试答不出 script 阻塞的病
前端·javascript
光辉GuangHui3 小时前
Agent Skill 也需要测试:如何搭建 Skill 评估框架
前端·后端·llm
To_OC4 小时前
我终于搞懂 Claude Code 核心逻辑!90%的人都用错了模式
前端·ai编程
蓝宝石的傻话4 小时前
Headless浏览器的隐形陷阱:为什么你的AI自动化工具抓不到页面早期错误?
前端
irving同学462384 小时前
Node 后端实战:JWT 认证与生产级错误处理
前端·后端