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

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

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

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

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

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

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

求解


回答:

这个意思其实就是兼容配置,题主可以想象一下用胶水把 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')

}

}

},

});


回答:

你不用把它当成一个很复杂的概念,就按照字面理解即可:

  • 胶水:把两段本不兼容的代码粘在一起,让他们能够一起工作
  • 提示代码:大概是 .d.ts,通过描述让脚手架理解它的接口和功能

前者一般来说需要自己写,因为毕竟是代码。后者比较简单,如果你用 TS 的话,tsconfig.json 里加上 declaration: true 然后执行 tsc 即可。JS 我暂时没搞过。

以上是 【互操作的胶水和提示代码】是什么? 的全部内容, 来源链接: utcz.com/p/934726.html

回到顶部