本文主要为了记录 webpack5 打包 bundle 并发布过程中踩过坑。
webpack 配置
这里主要列出了 webpack.config
中的关键点,这里比较坑的点是 externals
,左边是排除的包名,右边是 xshellv-hooks
在实际场景中引入所在项目的包名,这里如果写成大写的 React
会发现打包后的代码中有 require('React')
的写法,因此会出现找不到 react
的问题。
1 | module.exports = merge(common(), { |
其中 entry
的js文件大致如下,这里引入配置省略:
1 | import useMount from "./LifeCycle/useMount"; |
package.json
关键点在于 name
以及 main
设置,此外需要将 react
以及 react-dom
的引入从 dependencies
移动到 peerDependencies
当中,目的是为了 production
环境不把 react
打包进 bundle/index.js
, 并提示引入当前包的项目需保证 react
不能低于某个版本,否则无法正常使用。
1 | { |
如何使用
引入 umd
包名字(这里和 package.json
的 name
保持一致)
1 | import { useDebounceFn } from "xshellv-hooks"; |