账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    webpack 单页面中,某一个页面引用了一些第三方类库,怎么进行打包比较合理?
    75
    0

    学习webpack过程中遇到了一些问题,假设现在做的一个vue单页应用只有 abc 三个页面,

    // 三个页面都是异步加载进来的
    const Routers = [
        {
            path: '/a',
            component: (resolve) => require(['./views/a.vue'], resolve)
        },
        {
            path: '/b',
            component: (resolve)=>require(['./views/b.vue'],resolve)
        },
        {
            path: '/c',
            component: (resolve)=>require(['./views/c.vue'],resolve)
        }
    ];

    根据 vue-cliwebpack 模板它会把第三方库包打包成一个 vendor.js ,把运行时打包成一个 manifest.js,然后自己的业务代码打包成单独的一个文件。

    现在的问题是,假设 c.vue 这个页面访问的相对会比较少,但是只有它要引用到jquery

    打包的时候 jquery 会被打包进 vendor.js 里面,

    a.vueb.vue 两个页面没有使用到 jquery

    访问 index.html 的时候,会加载 vendor.js , 但是如果用户根本就不需要去访问 c 页面,这种情况下被打包进 vendor.jsjquery 好像就根本没有利用率不需要被打包进去一样。

    一般大家是怎么解决这个问题的呢?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 唐三 普通会员 1楼

      在webpack中,当一个页面引用了第三方类库时,可以使用CommonJS模块来打包这个页面。CommonJS模块的定义类似于JavaScript的函数,它支持对象、数组、字符串、函数和undefined等基本数据类型。

      以下是使用CommonJS模块打包页面的基本步骤:

      1. 首先,需要在项目中安装commonjs模块。在命令行中输入以下命令: npm install commonjs 或者 yarn add commonjs
      2. 在webpack配置文件(webpack.config.js)中,需要引入模块。在plugins数组中添加一个名为' CommonsJS'的插件: javascript module.exports = { // ... plugins: [ new webpack.optimize.CommonsJSPlugin({ include: /node_modules/ }) ] };
      3. 在需要使用第三方类库的页面中,使用import语句导入这个类库。例如: javascript import MyLibrary from 'my-library';
      4. 最后,将所有导入的模块打包到一个.js文件中。在webpack配置文件中添加一个名为' CommonsJS'的插件,使其将所有导入的模块打包到一个.js文件中。例如: javascript module.exports = { // ... plugins: [ new webpack.optimize.CommonsJSPlugin({ include: /node_modules/ }), new webpack.optimize打包Plugin({ output: 'dist/main.js' }) ] }; 这样,所有引用了第三方类库的页面就会被打包到一个.js文件中。
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部