【发布时间】:2017-10-09 04:47:00
【问题描述】:
假设您想通过 Nuxt 在 Vue 页面中包含一个第 3 方 js 库(例如 Three.js)。
nuxt.config.js 或 YourPage.vue 头部部分的本地资源不起作用:
head: {
script: [
{ src: '~assets/lib/three.min.js' }
]
}
上面的结果只是404 http://yoursite/~assets/lib/three.min.js NOT FOUND。
在您的页面组件中,您可以指定一个远程 src:
head: {
script: [
{ src: 'https://cdnjs.cloudflare.com/ajax/libs/three.js/85/three.min.js' }
]
}
但似乎无法控制async / defer - 因此无法保证您的外部脚本在您的页面或子组件尝试使用它之前已加载(提示:几乎可以肯定它没有及时加载)。
这似乎只留下了在nuxt.config.js 的头部指定远程源的选项。虽然这可行,但它会导致远程库被包含在每个页面中,并在应用程序启动时被下载——这两者都不是可取的。
有哪些选项可用于“按页面”加载外部库或更有效地延迟加载?
【问题讨论】:
标签: javascript node.js webpack vue.js nuxt.js