V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shuson
V2EX  ›  前端开发

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

  •  
  •   shuson · 2017-01-03 17:46:43 +08:00 · 1927 次点击
    这是一个创建于 2910 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有一个场景: 我的 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 了吧。

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

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

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

    如果两个项目是相关联的,那么就为相关联的部分单独建立一个项目,单独打包公共模块
    learnshare
        3
    learnshare  
       2017-01-03 18:05:28 +08:00
    如果两个项目关联性较大,比如 PC 版 + 移动版,可以把公用的代码单独打包,两个项目引用同一个 URL
    L3au
        4
    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
        5
    xjp  
       2017-01-03 18:28:48 +08:00 via iPhone
    这个问题在于重复打包 提供源码 统一在最终的节点打包一次就可以了
    shuson
        6
    shuson  
    OP
       2017-01-03 20:19:21 +08:00
    @xjp
    @chairuosen
    感谢,这种思路可取,


    @L3au 这种就是实现上述的方式吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1611 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 16:32 · PVG 00:32 · LAX 08:32 · JFK 11:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.