简体   繁体   English

Webpack:如何在多页应用程序中重用入口点文件?

[英]Webpack: How to reuse entry point file in multiple page application?

For example: 例如:

I have two .vue file a.vue , b.vue , 我有两个.vue文件a.vueb.vue

and I want to generate multiple pages, so I need two entry point file a.js , b.js 而且我想生成多个页面,所以我需要两个入口点文件a.jsb.js

But these two .js file are just different in one statement: 但是,这两个.js文件在一个语句中只是不同:

import Vue from 'vue'
import App from './a.vue' // or import App from '.b.vue'

new Vue({
  el: '#app',
  render: h => h(App)
})

How could I reuse the entry point file ? 如何重用入口点文件?


Chinese translation: 中文翻译:

例如用vue写,a.vue,b.vue两个文件 例如用VUE写,a.vue,b.vue两个文件

多页打包的话就要分别为这两个文件各自写一个入口文件,例如a.js,b.js 多页打包的话就要分别为这两个文件各自写一个入口文件,例如a.js,b.js

但其实这两个入口文件除了引入的vue文件不同,其他都相同 但其实这两个入口文件除了引入的VUE文件不同,其他都相同

import vue from 'vue'
import App from 'a.vue' // 这句不同 import App from 'b.vue'

new Vue({
  el: '#app',
  render: h => h(App)
})

那么请问有什么办法可以共用一个入口文件呢? 那么请问有什么办法可以共用一个入口文件呢?

Use dynamic imports. 使用动态导入。

If you have a condition that either loads a.vue or b.vue you can split them both in chunks. 如果您有加载a.vueb.vue的条件,则可以将它们拆分成块。 Your entry point will be the same for both. 两者的入口点将相同。
Than load and initialise the one you need. 然后加载并初始化所需的那个。

import Vue from 'vue'

const appPromise = condition ? import('./a.vue') : import('./b.vue');

appPromise.then(({ default: app }) => {
  new Vue({
    el: '#app',
    render: h => h(App)
  })
})

Something like this. 这样的事情。
Webpack will split them automatically and you only load the one you need. Webpack会自动拆分它们,而您只加载所需的那个。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM