dependencies 和 devDependencies 的区别,安装包的时候,怎么做判断

package.json 文件中,dependenciesdevDependencies 用于指定项目的依赖包,但它们有不同的用途:

dependencies

  • 用途:包含项目运行时所需的依赖包。这些依赖在生产环境中是必需的。
  • 示例vue, element-plus 等前端库,或者后端项目中的 express, mongoose 等。

devDependencies

  • 用途:包含项目开发时所需的依赖包。这些依赖仅在开发环境中使用,不会在生产环境中部署。
  • 示例:构建工具(如 vite, webpack),代码格式化工具(如 prettier, eslint),测试框架(如 jest, mocha)等。

如何决定安装到哪个依赖中?

  1. 开发工具和构建工具:如果是用于代码编译、打包、测试或格式化的工具,通常安装到 devDependencies
  2. 运行时依赖:如果是项目运行时需要用到的库或框架,比如 Vue, React, Axios 等,则应该安装到 dependencies
  3. 安装命令
    • 安装到 dependenciesnpm install package-nameyarn add package-name
    • 安装到 devDependenciesnpm install package-name --save-devyarn add package-name --dev

sass 错误安装在dependencies的列子

在使用 Vue 和 Vite 开发项目时,会使用 sass 作为 CSS 预处理器来编写更加灵活和可维护的样式代码。
然而,一个常见的错误是将 sass 错误地添加到项目的 dependencies 中,而不是 devDependencies。
这可能会导致一些问题,例如增加生产环境的包大小和潜在的构建问题。

例如,项目 package.json 文件中的依赖项可能如下所示:

"dependencies": {
  "element-plus": "^2.6.3",
  "sass": "^1.72.0",
  "vue": "^3.4.21"
}

在这种情况下,sass 被错误地放置在了 dependencies 中。

为什么这是一个问题?

dependencies 应该只包含项目在生产环境中运行时所需的包。
而 sass 实际上是一个开发工具,只在开发环境中用于编译 SCSS 文件。
将 sass 放在 dependencies 中意味着它也会被包含在生产环境的构建中,这是不必要的,可能会增加构建大小和复杂性。

解决方案

要解决这个问题,需要将 sassdependencies 移动到 devDependencies
可以通过以下步骤在命令行中完成:

  1. 首先,卸载 sass

    npm uninstall sass
    
  2. 然后,将 sass 安装到 devDependencies

    npm install sass --save-dev
    

完成这些步骤后,package.json 应该会更新,将 sass 放在 devDependencies 中,如下所示:

"devDependencies": {
  "sass": "^1.72.0",
  ...
}

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-06 08:06:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-06 08:06:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-06 08:06:02       82 阅读
  4. Python语言-面向对象

    2024-04-06 08:06:02       91 阅读

热门阅读

  1. Web Form

    2024-04-06 08:06:02       40 阅读
  2. spa、vue、elementUi

    2024-04-06 08:06:02       32 阅读
  3. Visual Studio 2022 配置及设置 One Dark Pro

    2024-04-06 08:06:02       32 阅读
  4. WebKit结构简介

    2024-04-06 08:06:02       42 阅读
  5. 自然语言处理——信息熵

    2024-04-06 08:06:02       35 阅读
  6. 设计模式(21):备忘录模式

    2024-04-06 08:06:02       43 阅读
  7. 鸿蒙系统前端:构建智能互联新时代的界面之美

    2024-04-06 08:06:02       36 阅读
  8. 数据库逆向生成文件之数据库连接报错解决方案

    2024-04-06 08:06:02       40 阅读
  9. Docker安装Memcached

    2024-04-06 08:06:02       39 阅读
  10. 手写一个民用Tomcat (01)

    2024-04-06 08:06:02       34 阅读
  11. 4月5日排序算法总结(1)

    2024-04-06 08:06:02       39 阅读