在 html 中加载 SystemJS 最终在 PhantomJS 中出现错误

Loading SystemJS in html ends up with error in PhantomJS

我正在使用 PhantomJS 为 jasmine 测试设置 CI。我在 html 页面中包含 SystemJS 时遇到了问题。我从中删除了所有内容,只剩下 javascript 并且仍然面临相同的错误:

ReferenceError: Can't find variable: System

这里是html的例子:

 <!DOCTYPE html>
 <html>
    <head>
    </head>
    <body>
        <script src="lib/systemjs/dist/system.src.js">   </script>
        <script>
            System.config({
                baseURL: './lib'

            });
      </script>
   </body>
 </html>

我 运行 它在控制台中是这样的:phantomjs test.js http://localhost:8080.

test.js 包含以下代码:

var page = require('webpage').create();
page.open(system.args[1], function(status)
{
    phantom.exit(0);
});

好像没看到system.src.js。我试图把绝对路径放在那里 - 但仍然是同样的错误。也试过 page.injectJs - 也不好。

过了一段时间我找到了答案,我想分享它,也许有人会觉得它有用。我登录了 page.outerHTML 并看到我用 system-polyfills.js 获得了额外的脚本,而不是带有 system.src.js 的脚本。看起来像这样:

<script src="lib/systemjs/dist/system.src.js"></script>
<script type="text/javascript" src="http://127.0.0.1:8080/lib/systemjs/dist/system-polyfills.js">

所以我刚刚将缺少的 system-polyfills.js 添加到以下文件夹并修复了错误。虽然我仍然不知道它来自哪里。