【问题标题】:PhantomJs: Can't find variable mapPhantomJs:找不到变量映射
【发布时间】:2025-12-31 09:15:07
【问题描述】:

我收到以下错误:

INFO [karma]: Karma v0.13.9 server started at http://localhost:9018/

INFO [launcher]: Starting browser PhantomJS

PhantomJS 1.9.8 (Mac OS X 0.0.0) ERROR
      ReferenceError: Can't find variable: Map
      at /Users/runtimeZero/code/vendor/inert/inert.min.js:589

我知道我包含一个名为 inert.js 的文件 这是使用 ES6 Map() 。这吓坏了 PhantomJs。

所以我在文件下的业力配置中包含了 core-js/es6/map.js polyfill。 但是,这并不能解决问题。

有什么建议吗?

【问题讨论】:

    标签: javascript phantomjs karma-runner


    【解决方案1】:

    我认为 PhatomJS 不支持 ES6 Map,所以你需要尝试使用 polyfill, 我正在使用 babel polyfill npm install babel-polyfill --save-dev

    files: [
        { pattern: 'node_modules/babel-polyfill/browser.js', instrument: false}, 
    ],
    

    【讨论】:

    • 这应该是数组中的第一个条目
    【解决方案2】:

    您需要安装 es6-shim 并将其添加到 karma 配置文件中的 files 部分。

    npm install es6-shim --save
    

    在您的 karma.config.js 中将其添加到您的文件列表中

    files: [
        'node_modules/es6-shim/es6-shim.js'
    ]
    

    【讨论】:

    • 这给我带来了另一个错误:ReferenceError: Can't find variable: WeakMap