在 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 添加到以下文件夹并修复了错误。虽然我仍然不知道它来自哪里。
我正在使用 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 添加到以下文件夹并修复了错误。虽然我仍然不知道它来自哪里。