Last updated on

问题记录:Vite 处理 UMD 包生产环境和开发环境不一致

问题描述

条件

import * as x from "build"
  1. build 包为 umd 规范
  2. build 包 只有一份 default 导出
  3. 使用上面的方式进行引入

表现

console.log("Mode", import.meta.env.MODE)
console.log("x", x)

pnpm run dev 后 控制台可见

Mode development
x ƒ index() {
        console.log("hi");
      }

pnpm run build && pnpm run preview 后 控制台可见

Mode production
x
Module {Symbol(Symbol.toStringTag): 'Module', default: ƒ}

复现项目结构描述

项目可见

注意在构建环境的时候 build 用了 file 协议 通过 rollup 来进行构建生成的

image

注意若把 export.ts 加个导出

export const sum = () => {
  console.log("sum")
}

export default function () {
  console.log("hi")
}

dev 环境打印就变成了

Mode development
x {__esModule: true, default: ƒ, sum: ƒ}

调试 dev 环境要注意 image