npm run dev & npm run build

这两个命令本身并不是 NPM (Node Package Manager) 内置的,而是开发者在项目的 package.json 文件中自定义的 脚本命令(scripts)。它们是行业内广泛使用的 约定俗成 的名称。


核心概念:package.json 中的 scripts

要理解这两个命令,首先要看项目的根目录下的 package.json 文件。里面会有一个 scripts 字段

      // package.json 示例
{
  "name": "my-awesome-app",
  "version": "1.0.0",
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "serve": "vite preview",
    "lint": "eslint ."
  },
  "dependencies": {
    // ...
  },
  "devDependencies": {
    "vite": "^4.0.0",
    "eslint": "^8.0.0"
    // ...
  }
}
    

当你运行 npm run <脚本名> 时,NPM 会查找 scripts 对象中对应的键(比如 dev),然后执行其对应的值(比如 vite 这个命令)。

所以,npm run dev 和 npm run build 的具体行为,完全取决于 scripts 中为它们定义的命令。不过,根据约定,它们的功能通常如下:


npm run dev (用于开发环境)

这个命令的目的是 启动一个本地开发服务器,为开发者提供一个高效、便捷的编码环境。

通俗地说: 这是给开发者自己用的。它就像一个厨师在自己的厨房里做菜,可以随时尝味道、加调料、调整火候,并且立刻看到效果。


npm run build (用于生产环境)

这个命令的目的是 将你的项目代码打包成最终的、可部署的静态文件

通俗地说: 这是为最终用户准备的。就像厨师把做好的菜品精心打包,做成一份份标准化的外卖,方便配送和顾客食用。这份“外卖”要尽可能小、加载快。


总结对比

特性/方面npm run dev (开发模式)npm run build (生产模式)
目标用户开发者最终用户
核心目的提升开发效率和体验提升应用性能和加载速度
服务器启动一个带热更新的本地开发服务器不启动服务器,只生成文件
输出结果通常在内存中,不生成永久文件在 dist 或 build 文件夹中生成静态文件
构建速度,牺牲优化换取速度,进行大量优化操作
代码体积大,包含调试信息,经过压缩和优化
调试容易,有 Source Maps困难,代码被混淆和压缩
使用场景日常编码、调试、测试新功能时项目开发完成,准备上线部署时

简而言之,你在开发过程中会一直使用 npm run dev,而只有当你准备将网站发布上线时,才会运行一次 npm run build,然后将生成的 dist 文件夹上传到你的服务器。

### 功能与使用场景分析 `npm run dev` `npm run build` 是前端开发中常见的两个脚本命令,它们分别用于开发环境生产环境。以下是对这两个命令在功能使用场景上的详细分析。 #### `npm run dev` 的功能与使用场景 `npm run dev` 通常用于启动开发服务器,以便在开发过程中实时预览调试应用程序。该命令会执行与开发环境相关的配置,例如启用热重载(Hot Module Replacement, HMR)功能,这样在代码修改后可以自动刷新浏览器,而无需手动重启服务器。此外,开发服务器通常会监听本地主机(如 `localhost:8080`)并启动一个 Express 服务器来提供静态资源服务[^3]。 ```javascript // 示例:package.json 中的 dev 脚本配置 &quot;scripts&quot;: { &quot;dev&quot;: &quot;vue-cli-service serve&quot; } ``` `npm run dev` 的典型使用场景包括: 1. **本地开发**:在开发阶段,用于快速启动本地服务器并进行实时调试。 2. **热重载**:当代码文件发生更改时,自动更新浏览器中的页面,无需手动刷新。 3. **代理配置**:设置代理以解决开发过程中的跨域问题。 4. **开发中间件**:通过 `webpack-dev-middleware` `webpack-hot-middleware` 提供高效的开发体验。 #### `npm run build` 的功能与使用场景 `npm run build` 用于将项目打包成生产环境所需的优化版本。此命令通常会执行一系列优化操作,例如压缩 JavaScript CSS 文件、删除调试代码、生成哈希文件名以提高缓存效率等。打包后的文件会被输出到指定的目录(如 `dist/`),可以直接部署到生产服务器上。 ```javascript // 示例:package.json 中的 build 脚本配置 &quot;scripts&quot;: { &quot;build&quot;: &quot;vue-cli-service build&quot; } ``` `npm run build` 的典型使用场景包括: 1. **生产环境部署**:将项目打包为优化后的静态资源,准备部署到生产服务器。 2. **代码压缩**:通过压缩工具减少文件体积,提升加载速度。 3. **资源优化**:对图片、字体等资源进行优化处理。 4. **哈希命名**:为文件名添加哈希值,确保浏览器缓存机制能够正确更新资源。 ### 总结 - `npm run dev` 更适合在开发阶段使用,提供了实时预览调试功能,帮助开发者快速迭代。 - `npm run build` 则用于生产环境的最终打包,专注于性能优化资源管理。 两者在功能使用场景上的差异主要体现在开发与生产环境的不同需求上。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值