前端 js 代码工业化时第三方库处理方式问题求解答

2017-01-03 17:46:43 +08:00
 shuson

有一个场景: 我的 source code 是 es6 写的,假如说,我是说假如想用一个流行第三方库 jquery, 于是乎, npm install --save jquery, 之后就可以在代码里 import $ from 'jquery'了, 当我用 webpack 和 babel 打包成一个 bundle.js 的时候, jquery 也会被打包进去吧?

之后,有另外一个 project 要用我的这个 bundle.js ,而且他们也要用 es6 和 jquery ,于是他们也自己 npm install 了,然后也 webpack 了一下,这样他们的 bundle2.js 里又有我的 bundle.js 又有 jquery ,这样整个 bundle2 里有两份 jquery 了吧。

不知道我这样讲是不是合适?如有错误烦请批评我,指正我。

最终问题,如何处理上面描述的重复性第三方文件问题?

1833 次点击
所在节点    前端开发
6 条回复
chairuosen
2017-01-03 17:58:42 +08:00
你只发布源码,让他们用的时候自己找 jquery 打包去
Biwood
2017-01-03 18:03:28 +08:00
如果两个项目是独立且不相关的,那么重复打包 jquery 很正常, webpack 优点就是打包之前的模块化, jquery 也是一个模块,当然需要打包

如果两个项目是相关联的,那么就为相关联的部分单独建立一个项目,单独打包公共模块
learnshare
2017-01-03 18:05:28 +08:00
如果两个项目关联性较大,比如 PC 版 + 移动版,可以把公用的代码单独打包,两个项目引用同一个 URL
L3au
2017-01-03 18:11:54 +08:00
--save-dev [-D] 保存到 devDependencies 而非 dependencies ,也可以把 jquery 配置成 "external"
https://webpack.github.io/docs/library-and-externals.html

另外,一般叫 "工程化" :)
xjp
2017-01-03 18:28:48 +08:00
这个问题在于重复打包 提供源码 统一在最终的节点打包一次就可以了
shuson
2017-01-03 20:19:21 +08:00
@xjp
@chairuosen
感谢,这种思路可取,


@L3au 这种就是实现上述的方式吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/331959

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX