Kev*_*aly 7 javascript require phantomjs ecmascript-6 immutable.js
我遇到了一个我无法解释的行为.取决于使用import或require,此测试成功(import)或失败(require).
如果失败,我有以下错误:
PhantomJS 2.1.1(Windows 7 0.0.0)不变性数字是不可变的FAILED undefined不是构造函数(评估'expect((0,_immutable.List)([1])).toEqualImmutable((0,_immutable.List) ([1]))')
这是代码:
import { Map, List } from 'immutable';
const expect = require("expect");
// import expectImmutable from "expect-immutable";
const expectImmutable = require("expect-immutable");
expect.extend(expectImmutable);
describe("immutability", () => {
describe("a number", () => {
function increment(currentState) {
return currentState + 1;
}
it("is immutable", () => {
expect(List([1])).toEqualImmutable(List([1]));
expect(Map({ a: 1 })).toEqualImmutable(Map({ a: 1 }));
let state = 42;
let nextState = increment(state);
expect(List([nextState])).toEqualImmutable(List([43]));
expect(List([state])).toEqualImmutable(List([42]));
});
});
});
Run Code Online (Sandbox Code Playgroud)
有没有人对幕后发生的事情有所解释?
感谢@zerkms 和@maioman,你们的建议确实很有帮助。你是对的@maioman,这是由于库使用的导出语法造成的。
es6:
export default foo;
Run Code Online (Sandbox Code Playgroud)
要求 :
module.exports = foo;
Run Code Online (Sandbox Code Playgroud)
所以当需要要求es6书面导出时,我们应该处理default关键字。
require("foo").default;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
107 次 |
| 最近记录: |