刚开始使用Nuxt.js一周前,我还没有掌握插件系统的诀窍。
我的nuxt.config.js
的相关部分如下所示:
// Plugins to run before rendering page: https://go.nuxtjs.dev/config-plugins
plugins: [
'~/plugins/lodash',
],
我在插件目录中创建了一个名为lodash.js
的文件,如下所示:
import Vue from 'vue';
import lodash from 'lodash';
Vue.use(lodash);
但是在我的.vue
组件中,当我使用console.log('lodash:', this.lodash)
时,它会打印出lodash: undefined
,例如,当我尝试使用this.lodash.pick(['a'], { a: 'a', b: 'b' })
时,它会抛出错误:TypeError: Cannot read property 'pick' of undefined
。
因此,我尝试使用this.$lodash
(添加了一个$),当我接着使用console.log('lodash:', this.$lodash)
时,它记录lodash: ƒ
,并使用console.log('lodash:', this.$lodash())
(像函数一样调用它)日志lodash: LodashWrapper {__wrapped__: undefined, __actions__: Array(0), __chain__: false, __index__: 0, __values__: undefined}
(即一组没有价值的属性的对象)。
因此,我想也许Vue.use()
并不是最好的选择,也许我应该选择注入lodash,所以我修改了lodash.js插件文件,如下所示:
import lodash from 'lodash';
export default({ app }, inject) => {
inject('lodash', lodash);
}
但这导致了完全相同的结果。现在我不知道还能尝试什么。因此,我的问题是,您如何在nuxt.js项目中安装和使用lodash (我认为还有任何其他随机的npm模块)?
FWIW我的项目运行的nuxt版本2.14.12
发布于 2021-04-13 01:46:56
我已经通过使用this.$_
的[医]阿提夫·齐亚氏病 of 佛洛什实现了在佛洛什中添加lodash。
plugins/lodash.js
import Vue from 'vue'
import VueLodash from 'vue-lodash'
import lodash from 'lodash'
Vue.use(VueLodash, { name: '$_', lodash })
nuxt.config.js
export default {
...
plugins: ['~/plugins/lodash.js'],
...
}
脚本中的用法:
var object = { 'a': 1, 'b': '2', 'c': 3 };
this._.pick(object, ['a', 'c']);
// => { 'a': 1, 'c': 3 }
看一看他们的GitHub,看起来这个包可以正确地打包存档。
发布于 2021-02-08 13:53:17
Hi @PrintlnParams您可以使用佛洛什包来实现
this.$_.sumBy()
。
或者您也可以作为
import _ from "lodash"
或单个组件为
import { sumBy } from "lodash"
与Nuxt.Js一起使用
https://stackoverflow.com/questions/66101970
复制相似问题