【发布时间】:2017-05-22 20:06:06
【问题描述】:
我正在尝试在使用 Nuxt 构建的应用程序中实现 D3。我已经使用import * as d3 from 'd3' 成功地将它导入到<script> 部分的视图中,但是由于缺少浏览器,该应用程序正在呈现服务器端D3 的功能不起作用(即d3.select(...))。在Nuxt plugin documentation 中,它为仅限客户端的外部插件提出了一种模式:
module.exports = {
plugins: [
{ src: '~plugins/vue-notifications', ssr: false }
]
}
我尝试在我的项目的nuxt.config.js 中实现该模式:
module.exports = {
head: {
title: 'My Demo App',
meta: [...],
link: [...]
},
loading: {...},
plugins: [
{ src: '~node_modules/d3/build/d3.js', ssr: false}
]
}
但是 D3 在寻找 document 时会抛出一个 ReferenceError,而 Nuxt 在控制台中抛出一个 SyntaxError,指向 nuxt.config.js 的插件字段中的某些内容。
供参考,demo.vue:
<template>
<div class="demo-container"></div>
</template>
<script>
import * as d3 from 'd3';
d3.select('.demo-container');
</script>
有人能指出我做错了什么吗?
【问题讨论】:
-
如果它解决了您的问题,您应该接受答案。否则,该问题将在队列中保留为未解决。