gpt4 book ai didi

Javascript 在 Windows 上按预期工作,在 Linux 上出错

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:55:50 25 4
gpt4 key购买 nike

我有一个脚本可以解析一个 xml 文件并将图像路径字段复制到一个新文件中。它在使用 bash 终端的 Windows 机器上完全按照预期工作。我在 Ubuntu 机器上使用完全相同的代码和 xml 文件对其进行了测试,但出现了 TypeError。这是在 Ubuntu 上给我带来麻烦的地方:

if (catalogLine.indexOf('<image path="') !== -1){
//if we have an image, read the image file list line by line
var imageCount = 0;
var image = '';
var whitespace = catalogLine.match(/^\s*/)[0].length;
lineReader.eachLine(resources.fileListToCompare, function(imageLine, imageLast, imageCB) {
if (catalogLine.indexOf(imageLine) !== -1) {
//if we match an image, make a copy and store outside of scope
imageCount++;
image = ' '.repeat(whitespace) + '<image path="' + imageLine + '"/>';
}

这是追溯:

/vagrant/ChalkTalkTool/ImageRemoval.js:23
image = ' '.repeat(whitespace) + '<image path="' + imageLine + '"/>'
^
TypeError: Object has no method 'repeat'
at /vagrant/ChalkTalkTool/ImageRemoval.js:23:17
at /vagrant/ChalkTalkTool/node_modules/line-reader/lib/line_reader.js:277:11
at getLine (/vagrant/ChalkTalkTool/node_modules/line-reader/lib/line_reader.js:166:7)
at Object.nextLine (/vagrant/ChalkTalkTool/node_modules/line-reader/lib/line_reader.js:183:7)
at Object.readNext [as _onImmediate] (/vagrant/ChalkTalkTool/node_modules/line-reader/lib/line_reader.js:269:14)
at processImmediate [as _immediateCallback] (timers.js:363:15)

所以我看到错误在行中:

image = ' '.repeat(whitespace) + '<image path="' + imageLine + '"/>';

我可以假设它与空格字符有关,但我想了解为什么在 Ubuntu 上会发生这种情况,以及解决它的方法,以便我可以使我的代码在不同系统之间更具可移植性(我尝试使用性格

"&nbsp;" 

而不是空格无济于事)。

最佳答案

问题在于 repeat() 函数仅在 ES6 及更高版本中可用。我假设您运行的 Ubuntu 实例正在运行 ES5。

您可以通过安装一个 polyfill 来测试这个理论,或者在您的代码顶部自己编写一个:

if (!String.prototype.repeat) {
String.prototype.repeat = function(howManyTimes) {
var result = '';
for (var i = 0; i < howManyTimes; i++) {
result += this;
}
return result;
}
}

关于Javascript 在 Windows 上按预期工作,在 Linux 上出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43682581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com