首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Webpack 踩坑记 - 配置 externals 和 output

1、场景 当你开发的包依赖较大的第三方包(react、react-dom) 的时候,你一般是把这些大的第三方包 externals 出去: { externals: { 'react': '...React', 'react-dom': 'ReactDOM' } } 假如你开发了 A、B 两个插件 A 依赖 B 、react 和 react-dom B 只依赖 react 和 react-dom...deps 如果你想发布 A 的话,有两种策略,要么直接依赖(将 B 写到 dependencies 中),要么像 react 和 react-dom 一样 externals 掉 B 包(有可能 B 的包也很大...我们一般容易混淆的是 externals 的使用,比如对 react-dom 的 externals,经常会看到两种写法: {'react-dom': 'reactDom'} {'react-dom':...': { commonjs: 'react-dom', // 这里更改了 commonjs2: 'react-dom', // 这里更改了 amd: 'react-dom

3.3K20

React:不要动,否则你会被炒鱿鱼

因为react-reconciler中被使用的部分,被打包进react-dom中了。 简单来说,React为了实现跨平台渲染,采用的是「一个主模块」 + 「一个渲染器」的模式。...react-dom,提供宿主环境方法,比如「DOM的增/移动/删/改」 等等其他包 这也是为什么宿主环境千差万别,但都能通过执行useState改变状态,触发视图更新。...既然「Hooks的实现」被打包进react-dom(或其他宿主环境对应的包)中,那如何做到最终使用时是从react中导出的呢?...再比如,object.assign方法的polyfill,在react与react-dom中都会用到,但如果两个包中分别引入,再分别打包,那么polyfill的代码会重复出现在react与react-dom...react作为react-dom的peerDependencies,当项目中引入这两个包后,react-dom内部使用的object.assign实际来自react: // react-dom包内部 const

65120

一文搞懂peerDependencies

重复的 React 关于第一点,官网解释说有可能使用了不支持 React Hook 的 react-dom 版本(<16.8.0),这点通过确认 package.json 中的 react-dom 版本号得以排除...这么分析完应该就是我封装的组件中依赖的 react 和 react-dom 的版本号和主工程中所依赖的 react 和 react-dom 的版本号不一致导致的。...现在想要实现的效果是: 在我开发的 packageA 里面依赖的 react 和 react-dom 的版本号应该和主系统中安装的 react 和 react-dom 的版本号保持一致,并且 packageA...被安装到主系统中之后,就应该依赖于主系统中的 react 和 react-dom。...声明 react 和 react-dom 的版本: 组件的package.json { "peerDependencies": { "react": ">=16.12.0", "react-dom

73720

87.精读《setState 做了什么》

但是 setState 函数是 react 包导出的,他们又是如何与 react-dom react-native react-art 这些包结合的呢?...但是 react 却可以和 react-dom react-native react-art 这些包打配合,甚至与 react-dom/server 配合在服务端运行,那可以肯定 react 包中不含有...也就是说,react 包定义了标准的状态驱动模型的 API,而 react-dom react-native react-art 这些包是在各自平台的具体实现。...各平台具体的渲染引擎实现被称为 reconciler,通过这个链接可以看到 react-dom react-native react-art 这三个包的 reconciler 实现。...这种方案一定会抽象一套通用语法,甚至几乎等价与 react 与 react-dom 的关系:所有符合规范的语法,转化为各小程序平台的实现。

71120
领券