You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 7中devDependencies与Dependencies的包安装疑问

关于Angular依赖包安装位置的疑问解答

兄弟,我来给你把这个依赖分类的事儿掰明白,先记住核心原则:

  • dependencies:是你的项目生产环境运行时必须要用到的包,比如业务逻辑依赖的核心库、UI组件库这些,打包后会被包含在生产构建里。
  • devDependencies:只是开发、构建、测试阶段需要的工具,比如代码检查器、测试框架、开发调试插件这些,生产环境完全不需要,打包时会被排除。

接下来逐个看你提到的这些包该放哪里,再看看你的配置问题:

逐个包分析

NGXS系列

  • @ngxs/store、@ngxs/router-plugin、@ngxs/storage-plugin:这些是状态管理的核心运行库,生产环境必须有,你放在dependencies里是完全正确的。
  • @ngxs/devtools-plugin、@ngxs/logger-plugin:这俩是开发时用来调试状态变化的工具,生产环境绝对不需要,你放在devDependencies里没问题。

Bootstrap相关

  • bootstrap:纯CSS+JS的框架,生产环境要加载它的样式和脚本,放在dependencies正确。
  • @ng-bootstrap/ng-bootstrap:这是Angular封装的Bootstrap组件,运行时要渲染组件,你现在放在devDependencies是错的,必须移到dependencies里。

Chart.js

chart.js:是渲染图表的核心运行库,生产环境页面要显示图表就离不开它,你放在devDependencies错误,得移到dependencies。

ng-select

@ng-select/ng-select:Angular的下拉选择组件,属于业务UI的一部分,运行时依赖,放在devDependencies不对,要移到dependencies。

SweetAlert

sweetalert2:生产环境要用来弹出提示弹窗,属于运行时需要的交互库,放在devDependencies错误,必须移到dependencies。

你的配置修正建议

把这几个放错位置的包调整后,正确的依赖结构大概是这样(只列关键调整项):

"dependencies": {
  // ... 你原来的dependencies内容保留
  "@ng-bootstrap/ng-bootstrap": "^4.0.0",
  "@ng-select/ng-select": "^2.12.0",
  "chart.js": "^2.8.0",
  "sweetalert2": "^7.29.2"
},
"devDependencies": {
  // ... 你原来的devDependencies内容保留,把上面那几个包从这里删掉
}

补充小提示

还有个小细节:node-sass其实是编译SCSS用的工具,只在开发构建时需要,应该移到devDependencies里,你现在放在dependencies是没必要的。

内容的提问来源于stack exchange,提问作者Joseph

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 05:09:21