webpack中externals出来的库,如何从本地读取,而不是从cdn读取

为了加快打包速度,我们经常会把一些比较大的库external出来?然后把这些库通过cdn引进来?但是我觉得从cdn读取没有从本地环境来的快,我尝试了以下方法
1 在html模板中引入node_modules下的压缩包

 <script src="../node_modules/react/umd/react.development.js"></script>

但是发现打包的时候并不会从本地读取

后面是试了一下把external的配置改成这样

config.externals = {
    'react': "./node_modules/react/umd/react.development.js",
  };

也还是不行,请问该怎么做,才能从本地读取被externals出来的包呢?
ps:src , node_modules ,.webpackrc.js 这三个是同级的,模版html文件是放在src目录下的

阅读 5.3k
2 个回答

找到原因了,我需要把
<script src="../node_modules/react/umd/react.development.js"></script>改成
<script src="./node_modules/react/umd/react.development.js"></script>,因为打包时去读取文件的时候是以你输命令行的目录为基准的,而不是html文件所在的目录为基准的

大可直接把想从本地引入的库直接从externals中剔除掉,交由webpack在打包时一并打进去,或者,如果有些库希望在用到的时候再异步加载js文件,那只需要在代码中把import改成异步引入方式即可,后续交给webpack拆包。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题