首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Vue.js - lodash |如何全局导入特定函数?

Vue.js - lodash |如何全局导入特定函数?
EN

Stack Overflow用户
提问于 2020-03-14 03:25:19
回答 1查看 510关注 0票数 0

我现在像这样导入整个lodash库:

代码语言:javascript
运行
复制
import _ from 'lodash';
Object.defineProperty(Vue.prototype, '$_', { value: _ });

它工作得很好,而且我可以使用this.$_.startCase()访问所有的lodash函数

但是我只在我的整个项目中使用函数startCaseomit。因此,我尝试导入jus这些函数:

代码语言:javascript
运行
复制
import {startCase, omit} from 'lodash/core';
Object.defineProperty(Vue.prototype, '$omit', { value: omit});
Object.defineProperty(Vue.prototype, '$startCase', { value: omit});

但是,当我尝试使用this.$omit()访问这些函数时,它抛出一个错误,指出该函数未定义。

这里出了什么问题?

EN

回答 1

Stack Overflow用户

发布于 2020-03-14 04:11:13

为了使用像import {omit} from 'lodash/core'这样的命名导入,lodash/core应该是包含用于omitexport语句的ES模块。lodash包是UMD的,这意味着它被Webpack视为CommonJS模块,并且由于模块的互操作性,只有默认的导出。

在这一点上,lodash/core的工作方式与lodash相同,整个模块将被导入到捆绑包中:

代码语言:javascript
运行
复制
import _ from 'lodash/core';
let { omit } = _;

函数应该从单独的嵌套lodash模块导入:

代码语言:javascript
运行
复制
import omit from 'lodash/omit';

或者应该从提供ES模块并允许命名导入的lodash-es包中导入:

代码语言:javascript
运行
复制
import {omit} from 'lodash-es';
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60676189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档