codecamp

MorJS phantomDependency - 幽灵依赖检测

  • 类型: ​object​ 或 ​boolean
  • 默认值: 开发模式 ​true​ | 生产模式 ​false

开启关闭或配置幽灵依赖检测功能,不配置时开发模式下默认为 ​true​ 开启检测 warn 警告,生产模式下默认为 ​false​ 关闭检测,配置值为 ​object​ 时支持 ​mode​ 和 ​exclude​ 两个属性:

  • mode​: 检测模式,可配置为 ​'warn'​ 和 ​'error'​ 两种,默认 ​'warn'​ 时仅进行警告,配置为 ​'error'​ 时会作为错误抛出
  • exclude​: ​Array<string>​ 指定哪些 npm 包不作为幽灵依赖从而跳过检测
// 配置示例一:关闭检测(生产模式下默认)
{
phantomDependency: false
}

// 配置示例二:开启检测 warn 警告,但是某些包不判断为幽灵依赖
{
phantomDependency: {
mode: 'warn',
exclude: ['@morjs/utils']
}
}

// 配置示例三:开启检测 error 警告,但是某些包不判断为幽灵依赖
{
phantomDependency: {
mode: 'error',
exclude: ['@morjs/utils']
}
}
幽灵依赖: 当一个项目使用了一个没有在其 package.json 中声明的包时,就会出现"幽灵依赖"
  • 出现原因: npm 3.x 开始「改进」了安装算法,使其扁平化,扁平化就是把深层的依赖往上提。好处是消除重复依赖,代价则是引入幽灵依赖问题,因为往上提的依赖你在项目中引用时就能跑
  • 潜在危害:
  1. 不兼容的版本,比如某依赖过了一年发布大版本,然后大版本被提升到 node_modules root 目录,你就会使用不兼容的版本
  2. 依赖缺失,比如你的直接依赖小版本更新后不使用你之前依赖的间接依赖,再次安装时就不会出现这个依赖,或者比如多个直接依赖的间接依赖冲突时,可能也不会做提升


MorJS outputPath - 输出产物目录
MorJS plugins - 插件配置
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

MorJS 指南

MorJS 基础用法

MorJS 配置

MorJS 编译相关配置

MorJS 进阶用法

MorJS Web开发

MorJS Web开发介绍

MorJS Web开发快速上手

MorJS Tabbar IOS 小黑条适配开关

MorJS 社区

MorJS 规范

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }