我现在像这样导入整个lodash库:
import _ from 'lodash';
Object.defineProperty(Vue.prototype, '$_', { value: _ });
它工作得很好,而且我可以使用this.$_.startCase()
访问所有的lodash函数
但是我只在我的整个项目中使用函数startCase
和omit
。因此,我尝试导入jus这些函数:
import {startCase, omit} from 'lodash/core';
Object.defineProperty(Vue.prototype, '$omit', { value: omit});
Object.defineProperty(Vue.prototype, '$startCase', { value: omit});
但是,当我尝试使用this.$omit()
访问这些函数时,它抛出一个错误,指出该函数未定义。
这里出了什么问题?
发布于 2020-03-14 04:11:13
为了使用像import {omit} from 'lodash/core'
这样的命名导入,lodash/core
应该是包含用于omit
的export
语句的ES模块。lodash
包是UMD的,这意味着它被Webpack视为CommonJS模块,并且由于模块的互操作性,只有默认的导出。
在这一点上,lodash/core
的工作方式与lodash
相同,整个模块将被导入到捆绑包中:
import _ from 'lodash/core';
let { omit } = _;
函数应该从单独的嵌套lodash
模块导入:
import omit from 'lodash/omit';
或者应该从提供ES模块并允许命名导入的lodash-es
包中导入:
import {omit} from 'lodash-es';
https://stackoverflow.com/questions/60676189
复制相似问题