【互操作的胶水和提示代码】是什么?

作者站长头像
站长
· 阅读数 5

umi4 在用 vite 启动的时候,我自己写的 npm 包会报错,

但用 webpack 启动则不会有这个问题

在仓库提了 issues 后,官方的回答是下图

【互操作的胶水和提示代码】是什么?

我用 rollup 和 father 打包过,都有这个问题,

【互操作的胶水和提示代码】是什么,该怎么产出呢?

求解

回复
1个回答
avatar
test
2024-06-29

这个意思其实就是兼容配置,题主可以想象一下用胶水把 webpackvite 粘在一起

所以它没有通用的方案,是根据实际情况去配置的。vite 的打包方式和 webpack 不大一致(比如 vite 使用 ES module,如果题主的代码中存在 common js 的范式,就会不兼容)

题主可以参考各自的官方文档,看看是否缺少某些配置

补充示例

胶水代码的定义是宽泛的,只要能兼容理论上就可以算作一种“胶水”

比如说你的项目用 webpack 配置了一个 sass-loader

module.exports = {
  module: {
    rules: [
      {
        test: /\.scss$/,
        use: [
          'style-loader',
          'css-loader',
          'sass-loader'
        ]
      },
      // 其他loader配置...
    ]
  },
};

然后你想在 vite 中也兼容就可以这么做:

import { defineConfig } from 'vite';

export default defineConfig({
  css: {
    preprocessorOptions: {
      scss: {
        implementation: require('sass')
      }
    }
  },
});
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容