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

相关推荐
光影少年13 小时前
如何实现RN 多环境、多渠道打包
前端·react native·react.js
闲坐含香咀翠14 小时前
百万行数据透视表,我是怎么把 Vue 响应式开销砍到零的
前端·vue.js·性能优化
xiaopang14 小时前
小红书小组件(miniwidget)开发实战:单页面viewState切换架构
前端
labixiong14 小时前
告别scroll 监听:CSS 滚动驱动动画,主线程堵死也仍跟手
前端·css·html
云析赢指标公式网414 小时前
文华WH6布林轨道均线强弱共振指标公式
前端·算法
许彰午14 小时前
34-安全复盘96个问题
前端·vue.js·安全
妙码生花14 小时前
PHP 各框架下和 Go 的性能比较
前端·后端·go
Csvn15 小时前
TypeScript 类型性能:让类型体操不再卡死编译器
前端
万少15 小时前
等不到 Apple 的折叠 iPhone,我用 DeepV4.1Flash + workBuddy 一句话自己造了一台
前端·javascript·后端
梦曦i15 小时前
uni-router v0.2.0重磅发布:全链路拦截+重复导航优化
前端·uni-app