devDependencies dependencies env

问题

项目中使用yarn install,只安装了在dependency中的依赖

知识

devDependencies 和 dependencies区别

  • devDependencies:

    指的是项目开发过程中所需要的模块

    • 安装时机:

      只有当前的环境变量值是 `develpoment`: 才会安装devDependencies中的依赖
      
      • 没有设置环境变量的时候: 环境变量是develpoment
  • dependencies

    指的是项目运行所依赖的模块

    • 安装时机:

      不论当前环境变量是什么,dependencies中的依赖都会被安装
      
  • Note:项目中必须严格区分不同dependency的安装方式

dependency安装方式混乱对项目影响

  • 导致不同环境安装的包不全

    举个例子:

    • 部署项目到production,设置此时的环境变量NODE_ENV:production
    • 此时进行yarn install会安装package.json:dependencies中的依赖
    • 但是项目的某个文件中import {dev-tool} from 'devDependency'import了一个安装在devDependencies中的依赖
    • 此时打包,webpack会将import的所有3rd party都打包到一个chunk中,但是直接报错,因为当前只安装了dependencies中的依赖,找不到此时import的devTool了

使用包管理器根据不同的环境变量安装不同依赖的方式

  • yarn

    使用yarn install可以安装项目中的依赖

    • 没有设置环境变量,或者export NODE_ENV=(除了production以外的任何环境变量值)
      - 安装devDependency和dependency
    • 设置export NODE_ENV=production或者执行yarn install --production/yarn install --prod/yarn install --production=true
      • 安装dependency
  • 假设当前的NODE_ENV=prodcution如何才能既安装devDependency也安装dependency?
    - 执行yarn install --production=false

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,448评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,069评论 6 342
  • 简介 概述 Maven 是一个项目管理和整合工具 Maven 为开发者提供了一套完整的构建生命周期框架 Maven...
    闽越布衣阅读 9,811评论 6 39
  • Yarn 初始化一个项目 yarn init 相当 npm init yarn add添加一个包 相当 ...
    FConfidence阅读 28,931评论 5 19
  • 平心而论,我自认为不是一个歧视别人或者带有世俗眼光的人,相反我觉得每个人都会有基本的同情心和正义感。可是事实上在这...
    拘水明月长相知阅读 4,005评论 0 1