ncu*_*010 5 javascript vue.js webpack-2 vue-component vuejs2
我需要通过与相对 URL 相对的完整 URL 异步导入 Vue 组件。以下来自VueJS 文档的示例适用于同一项目中的组件
Vue.component(
'app-component-one',
() => import('./component-from-app-one')
)
Run Code Online (Sandbox Code Playgroud)
但是,我的目标是从部署在同一服务器上的单独项目中导入组件。我希望我可以使用完整的 URL 并执行类似...
Vue.component(
'app-component-two',
() => import ('http://sample-domain.com/project-2/components/component-from-app-two.vue')
)
Run Code Online (Sandbox Code Playgroud)
但它会导致错误:
This dependency was not found:
* http://sample-domain.com/app-2/components/component-from-app-two.vue in ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0&bustCache!./src/components/SampleComponent.vue
Run Code Online (Sandbox Code Playgroud)
是否可以通过完整 URL 导入组件?提前致谢!
您从 Vue 网站引用的示例正在利用WebPack 的代码分割功能,因此无法加载不属于同一项目的文件。
您尝试做的事情通常称为“动态/异步 ES6 模块加载”。不要太深入它..但当前import blah from X仅支持静态导入。如果你更关心这方面的细节..有一个关于 JS 动态导入的 TC39 提案
与此同时……我们凡人必须依赖像SystemJS这样的工具,它会完全满足您的要求。
但就像 @divine 提到的......你需要某种类型的构建过程来生成独立的 Vue 组件。您可以使用 WebPack 或 RollUp 将其导出为 UMD,并使用 SystemJS 通过引用完整 URL 来导入该组件(您甚至可以从不同的域导入它!假设该域支持 CORS)
| 归档时间: |
|
| 查看次数: |
1721 次 |
| 最近记录: |