它曾经有用,但现在我使用新的es2015
和lodash
捆绑/模块将项目更改为lodash
。我无法正确获得_.default
。
npm install lodash --save
npm install @types/lodash --save-dev --save-exact
在那里,但在错误的地方 - 我需要的方法是import * as _ from "lodash";
console.log( Object.keys(_) ) // ["default", "__moduleExports"]
console.log(_.default.VERSION) // 4.16.2
npm步骤
import _ from "lodash"; // imports as lodash, not _
// Chrome debugger console:
console.log(_) // VM2037:1 Uncaught ReferenceError: _ is not defined(…)
console.log(lodash) // function
console.log(Object.keys(lodash)) // returns: VM2075:1 ["templateSettings", "after", "ary", "assign", ...]
的javascript
import _ from "lodash";
发生了什么事?
更新
console.log(">>> _.keys(_): " + _.keys(_).slice(10, 20));
// >>> _.keys(_): bindAll,bindKey,castArray,chain,chunk,compact,concat,cond,conforms,constant
// and the _.sortBy() below works fine
var sorted = _.sortBy(photos, function (o) {
return o[sort.key];
});
// BUT, in the Chrome debugger (at breakpoint)
console.log(_) // VM2037:1 Uncaught ReferenceError: _ is not defined(…)
更新2
也许这与Chrome Debugger + Rollup有关?我将代码更改为main.js
并且工作正常 - 除了在调试器控制台中...
console.log(">>> _.keys(_): " + lodash.keys(lodash).slice(10, 20));
var sorted = lodash.sortBy(photos, function (o) {
return o[sort.key];
});
事实上,当我查看public Form1()
{
InitializeComponent(); //this need to be always first in windows application
GetPortOptions();
}
而不是源地图时,我看到了树木震动的迹象(?):
@ApplicationPath("tenants")
public class TenantConfig extends ResourceConfig {
public TenantConfig(ObjectMapper mapper) {
//set provider + add mapper
register(TenantsController.class);
}
}
我的问题似乎与Chrome调试控制台有关,但我不确定如何解决它......
答案 0 :(得分:1)
问题是您在导入中使用import * as
。这不会选择默认值。
使用将导入默认值的语法:
import _ from "lodash"
Here is a link to the documentation
似乎汇总尝试使用静态导入来树干捆绑。因此,它需要一个依赖于lodash的ES6。尝试安装lodash-es软件包,然后导入它:
import _ from "lodash-es"