美文网首页
devDependencies dependencies env

devDependencies dependencies env

作者: 张培_ | 来源:发表于2018-06-19 20:51 被阅读40次

    问题

    项目中使用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

    相关文章

      网友评论

          本文标题:devDependencies dependencies env

          本文链接:https://www.haomeiwen.com/subject/rbyzeftx.html