【发布时间】:2021-06-02 18:29:48
【问题描述】:
Nuxt 的插件/模块系统非常复杂,因此我无法完成这个非常简单的任务,即使在 SO 上查看了其他一些答案之后也是如此。我已经安装了 NPM 包csv-parse(找到了here),然后我在我的项目的plugins 目录中创建了一个名为csv-parse.js 的文件,我在其中放入了以下代码:
import Vue from 'vue';
import CsvParse from 'csv-parse';
Vue.use(CsvParse);
然后我在我的nuxt.config.js 的插件数组中添加了{ src: "~/plugins/csv-parse", mode: "client" }(我只需要在客户端使用这个包)。
就 Nuxt 的文档和其他 SO 答案而言,您现在应该能够在您的组件中全局使用这个包,但是没有人关心如何在您的组件中使用它。这是我尝试过的:
// @/components/Hospitals/Crud.vue
...
<script>
export default {
methods: {
parseFileData() {
console.log('parser:', CsvParser); // ReferenceError: CsvParser is not defined
console.log('parser:', $CsvParser); // ReferenceError: $CsvParser is not defined
console.log('parser:', this.CsvParser); // undefined
console.log('parser:', this.$CsvParser); // undefined
}
}
}
</script>
...
有人能解开如何在 Nuxt 项目中全局使用自定义 NPM 包的奥秘吗?
【问题讨论】:
-
简单解释一下:模块是由社区提供的官方包(通常维护良好),即插即用。这里有一个列表:modules.nuxtjs.org(它可能没有全部但仍然有很多)。插件提供了一种在 Vue 实例启动之前将任何类型的 JS 代码(Vue 或 vanilla)导入项目的方法。基本上是导入任何不是为 Nuxt 设计的代码。
标签: javascript vue.js npm nuxt.js