按需加载指定文件名(require.ensure、import(

2019-10-23  本文已影响0人  Mr老朝

上篇帖子说到Vue中的异步路由、异步组件、懒加载第三方类库,但是怎么给异步加载的文件指定文件名呢?接下来将为你解答

一、require.ensure

用法:

require.ensure(
  dependencies: String[],
  callback: function(require),
  errorCallback: function(error),
  chunkName: String
)

当使用 CommonJS 模块语法时,这是动态加载依赖的唯一方法。

例子1:

    // 按需异步加载image-viewer-gallery和它依赖的css
    // 打包到lib/image-viewer-gallery.js
    require.ensure(['./css/footer.styl'], () => {
            const ImageViewer = require('image-viewer-gallery');
            // 其他代码 ......
    }, 'lib/image-viewer-gallery');

例子2:

       // Vue按需加载组件
       // 打包到main/select.js
       components: {
            select: r => require.ensure([], () => r(require('@/components/select')), 'main/select'),
        },

二、import()

用法:

import(
  /* webpackInclude: /\.json$/ */
  /* webpackExclude: /\.noimport\.json$/ */
  /* webpackChunkName: "my-chunk-name" */
  /* webpackMode: "lazy" */
  /* webpackPrefetch: true */
  /* webpackPreload: true */
  /* webpackIgnore: true */
  `./locale/${language}`
);

例子1:

       // Vue按需加载组件
       // 打包到main/select.js
       components: {
            select: () => import(/* webpackChunkName: "main/select" */ '@/components/select'),
        },
上一篇 下一篇

猜你喜欢

热点阅读