javascript - 来自不同项目/域的 webpack 和 vue 异步组件

标签 javascript webpack vue.js

我对 webpack 还很陌生,我已经观看了一些教程并在我的项目中获得了工作配置。

我尝试通过这种方式异步加载vuejs组件:

<template>
  <div id="app">
    <component
      :is="template"
    >
    </component>
  </div>
</template>
<script>
export default {
  name: 'App',
  computed: {
    template () {
      return () => import(`@/templates/${this.$template.name}`)
    }
  },
  mounted () {
    this.template().then(comp => {
      this.$nextTick(() => {
        //...
      })
    })
  }
}
</script>

webpack编译后,得到三个文件:

  • app.js
  • 0.js
  • index.html

这就是我想要的结果,因为这将是一个小部件,因此只需一个 js 文件包含(app.js),它在执行期间调用 0.js,并且当 app.js 包含在索引中时效果很好同一主机上的.html页面

但是如果我想包含来自另一台主机的 app.js 文件该怎么办?

例如,如果我有 mywebsite.com/index.html 其中包含 app.js 脚本

<!--https://mywebsite.com/index.html-->
<script src="https://my_widget_host.com/app.js"></script>

当它尝试获取 0.js 文件时,我收到 404 错误,因为调用位于 http://mywebsite.com/0.js而不是 http://my_widget_host.com/0.js

有没有办法在 0.js 文件中添加托管该文件的服务器的 URL 前缀?

最佳答案

当然,这就是 publicPath ( https://webpack.js.org/guides/public-path/ ) 被发明的原因。您可以在构建时设置它,或者在运行时更方便地设置它 - 只需分配窗口即可。webpack_public_path = ' https://my_widget_host.com/ ';

问候。

关于javascript - 来自不同项目/域的 webpack 和 vue 异步组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50916512/

相关文章:

javascript - Kendo/IE/缓存

vue.js - 如何从nuxt.js页头的node_modules文件夹中引用js文件

javascript - 浏览器导航未在 Vue.js 应用程序中加载组件

javascript - Vue 测试 : shallowMount & localVue produce error on second run of identical test. 不是纯函数吗?

javascript - 根据数据改变背景(Vue3)

javascript - 使用XMLHttpRequest加载多个音频文件并将其附加以在Web Audio API中播放

javascript - 自动更新 HTML Canvas 宽度和高度属性

javascript - 在我的 html 中使用 Node 函数

javascript - Webpack jQuery 和 jQuery.lazy() TypeError : q is undefined

javascript - 在 Jest 中使用绝对路径