Javascript 在Nuxt和合成API中使用lodash
我正在尝试将lodash与Nuxt2合成API()一起使用 但是,使用Javascript 在Nuxt和合成API中使用lodash,javascript,vue.js,nuxt.js,lodash,vue-composition-api,Javascript,Vue.js,Nuxt.js,Lodash,Vue Composition Api,我正在尝试将lodash与Nuxt2合成API()一起使用 但是,使用useContext()我无法找到任何全局Vue原型函数。所以当我尝试用nuxt模块创建一个模块时。我在useContext()中得到了$lodash。但是当我调用$lodash.all([true,false])时,它说$lodash.all不是一个函数 它使$lodash在nuxt上下文中可用的唯一技巧是使用inject。我正在分享我的设置 //modules/lodash/index.js const path=requ
useContext()
我无法找到任何全局Vue原型函数。所以当我尝试用nuxt模块创建一个模块时。我在useContext()
中得到了$lodash
。但是当我调用$lodash.all([true,false])
时,它说$lodash.all不是一个函数
它使$lodash在nuxt上下文中可用的唯一技巧是使用inject
。我正在分享我的设置
//modules/lodash/index.js
const path=require('路径')
module.exports=函数nuxtLodash(moduleOptions){
const lodashOptions=Object.assign({},this.options.lodash,moduleOptions)
//注册插件
这是addPlugin({
src:path.resolve(uu dirname,'plugin.js'),
ssr:错,
文件名:“lodash.js”,
选项:{
洛达斯选项
}
})
}
//modules/lodash/plugin.js
从“Vue”导入Vue
从“vue lodash”导入VueLodash
从“lodash”导入lodash
use(VueLodash,{name:'$\',lodash})
导出默认函数(ctx、注入){
注入('lodash',lodash)
}
//nuxt.config.js
模块:[
//…其他模块
“~/modules/lodash”
],
现在,当我在CompositionAPI组件中使用它时,我得到了一个错误
进口{
定义组件,
使用上下文
}来自“@nuxtjs/compositionapi”
导出默认定义组件({
设置(){
const{$lodash}=useContext()
console.log($lodash)
log($lodash().all([true,false]))
}
})
有没有合适的方法来使用这个?这里我遗漏了什么?最简单的方法是通过从“lodash es”导入{all}(并将lodash es安装为依赖项)导入所需的函数。这样,您就不会将整个lodash库添加到包中,也不会出现任何导入问题
导入{
定义组件
}来自“@nuxtjs/compositionapi”
从“lodash es”导入{all}
导出默认定义组件({
设置(){
log(全部([true,false]))
}
})
最后,在库和平台出现了一系列问题之后,我终于能够解决它。造成问题的原因很多
lodash
和devbabel插件lodash
依赖项
由于nuxt内置了巴贝尔支持,因此在巴贝尔列表中添加了一个插件:
build: {
babel: {
plugins: ['lodash']
}
}
然后它看起来像一个正常的导入工程 非常感谢你的建议。然而,我有一个错误。我删除了插件和模块,并添加了lodash es模块。但到处都是洛达斯进口声明。现在我遇到了这个错误:
必须使用导入来加载ES模块
我的一些模板也直接使用了。模板是否可以使用此功能?这是否与以下内容相关:得到了实际问题:因此看起来无法使用lodash es并返回到原始问题