我想对xterm.js的源代码进行一些更改,并在进行 PR 之前对其进行测试。我未能成功生成有效的“分布”。
(如果我的术语不正确,我深表歉意——我对 Web 开发很陌生)
设置
我用以下内容建立了一个简单的测试网站index.html
<!doctype html>
<html>
<head>
<script src="%PUBLIC_URL%/xterm.js"></script>
</head>
<body>
<div id="terminal"></div>
<script>
console.log(Terminal);
var term = new Terminal();
term.open(document.getElementById('terminal'));
term.write('Hello from \x1B[1;3;31mxterm.js\x1B[0m $ ')
</script>
</body>
</html>
在该位置%PUBLIC_URL%
,我将从以下任一位置放置一个 JS 源文件xterm.js
:
node_modules/xterm/dist/xterm.js
- 通过 npm 添加xterm.js/lib/xterm.js
- 从 GitHub 存储库构建
为了构建本地副本,xterm.js
我采取了以下步骤:
git clone https://github.com/xtermjs/xterm.js.git xterm-local
cd xterm-local
npm install
npm run package
(注意:如果你在家里跟着我,我无法在 Windows 或 Mac 上构建 xterm.js——我只能使用 Ubuntu 18.04 完成这些步骤)
命令全部成功运行,最后一个创建xterm-local/lib
包含xterm.js
. 我使用该文件来替换可以从 NPM 安装中获得的副本。
结果
普通的
使用 NPM 时,dist/xterm.js
我成功地看到我的终端元素呈现并且日志读取
ƒ Terminal(options) {
this._core = new Terminal_1.Terminal(options);
this._addonManager = new AddonManager_1.AddonManager();
}
使用本地构建
当使用我本地构建的输出时,xterm-local/lib/xterm.js
没有呈现终端元素,出现错误:Uncaught TypeError: Terminal is not a constructor
并且日志读取
{Terminal: ƒ, __esModule: true}
Terminal: ƒ e(e)
__esModule: true
__proto__: Object
期望
我希望在构建 xterm.js 的本地副本之后,我可以将它与 NPM 发行版互换使用。但是我很好奇为什么该命令npm run package
不生成dist
文件夹而是生成文件lib
夹。我是否缺少其他步骤来制作我自己的可用副本xterm.js
?