Javascript Node.js:bmfont2json不是函数吗?

Javascript Node.js:bmfont2json不是函数吗?,javascript,node.js,Javascript,Node.js,我知道这个问题已经被问了无数次了,但我找不到我的问题所在。代码如下: var fs = require('fs'); var bmfont2json = require('bmfont2json'); var data = fs.readFileSync('Bitmap Font' + '/Roboto.fnt'); var obj = bmfont2json(data); var json = JSON.stringify( obj ); 这导致错误bmfont2json不是函数。有人知

我知道这个问题已经被问了无数次了,但我找不到我的问题所在。代码如下:

var fs = require('fs');
var bmfont2json = require('bmfont2json');

var data = fs.readFileSync('Bitmap Font' + '/Roboto.fnt');
var obj = bmfont2json(data);

var json = JSON.stringify( obj );

这导致错误
bmfont2json
不是函数。有人知道上面的错误吗?谢谢。

尝试导入
bmfont2json
如下

var bmfont2json = require('bmfont2json');

尝试导入
bmfont2json
,如下所示

var bmfont2json = require('bmfont2json');

我认为您编写的require语句是错误的
var bmfont2json=require('bmfont2json.js')


正确的方法是不要像下面这样包含.js
var bmfont2json=require('bmfont2json')

我认为您编写的require语句是错误的
var bmfont2json=require('bmfont2json.js')

正确的方法是不要像下面这样包含.js
var bmfont2json=require('bmfont2json')

因为我相信您正在使用bmfont2json npm

有关更多信息,请参阅:

因为我相信您正在使用bmfont2json npm

有关更多信息,请参阅:

正如Bulkan和Maynank已经提到的,您不应该在NPM核心模块名称的末尾包含
.js

var bmfont2json = require('bmfont2json');
然而,你真正做错的是:

var obj = bmfont2json(data);
var fs = require('fs');
var bmfont2json = require('bmfont2json');
var data = fs.readFileSync(__dirname+'/Bitmap Font' + '/Roboto.fnt');
var obj = bmfont2json(data);
var json = JSON.stringify( obj );
console.log(json);
info face="Arial" size=32 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
common lineHeight=32 base=26 scaleW=256 scaleH=256 pages=0 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0
chars count=0
{  "pages":[],
   "chars":[],
   "kernings":[],
   "info":"face":"Arial", 
   "size":32,
   "bold":0,
   "italic":0,
   "charset":"",
   "unicode":1,
   "stretchH":100,
   "smooth":1,
   "aa":1,
   "padding":[0,0,0,0],
   "spacing":[1,1], 
   "outline":0},
   "common":{
              "lineHeight":32,
              "base":26,
              "scaleW":256,
              "scaleH":256,
              "pages":0,
              "packed":0, 
              "alphaChnl":1,
              "redChnl":0, 
              "greenChnl":0, 
              "blueChnl":0
             }
}
由于此函数来自
bmfont2json
模块,因此正确的代码如下所示:

var obj = bmfont2json.bmfont2json(data);
var fs = require('fs');
var bmfont2json = require('bmfont2json.js');

var data = fs.readFileSync('Bitmap Font' + '/Roboto.fnt');
var obj = bmfont2json(data);

var json = JSON.stingify( obj );
注意,这样做的方式与
var data=fs.readFileSync(诸如此类)相同。由于
readFileSync()
fs
模块中的一个函数,因此您使用了
fs.readFileSync()
而不仅仅是
readFileSync()
。这就是如何使用Node.js中任何模块的函数

因此,正确的代码如下所示:

var obj = bmfont2json.bmfont2json(data);
var fs = require('fs');
var bmfont2json = require('bmfont2json.js');

var data = fs.readFileSync('Bitmap Font' + '/Roboto.fnt');
var obj = bmfont2json(data);

var json = JSON.stingify( obj );

正如Bulkan和Maynank已经提到的,您不应该在NPM核心模块名称的末尾包含
.js

var bmfont2json = require('bmfont2json');
然而,你真正做错的是:

var obj = bmfont2json(data);
var fs = require('fs');
var bmfont2json = require('bmfont2json');
var data = fs.readFileSync(__dirname+'/Bitmap Font' + '/Roboto.fnt');
var obj = bmfont2json(data);
var json = JSON.stringify( obj );
console.log(json);
info face="Arial" size=32 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
common lineHeight=32 base=26 scaleW=256 scaleH=256 pages=0 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0
chars count=0
{  "pages":[],
   "chars":[],
   "kernings":[],
   "info":"face":"Arial", 
   "size":32,
   "bold":0,
   "italic":0,
   "charset":"",
   "unicode":1,
   "stretchH":100,
   "smooth":1,
   "aa":1,
   "padding":[0,0,0,0],
   "spacing":[1,1], 
   "outline":0},
   "common":{
              "lineHeight":32,
              "base":26,
              "scaleW":256,
              "scaleH":256,
              "pages":0,
              "packed":0, 
              "alphaChnl":1,
              "redChnl":0, 
              "greenChnl":0, 
              "blueChnl":0
             }
}
由于此函数来自
bmfont2json
模块,因此正确的代码如下所示:

var obj = bmfont2json.bmfont2json(data);
var fs = require('fs');
var bmfont2json = require('bmfont2json.js');

var data = fs.readFileSync('Bitmap Font' + '/Roboto.fnt');
var obj = bmfont2json(data);

var json = JSON.stingify( obj );
注意,这样做的方式与
var data=fs.readFileSync(诸如此类)相同。由于
readFileSync()
fs
模块中的一个函数,因此您使用了
fs.readFileSync()
而不仅仅是
readFileSync()
。这就是如何使用Node.js中任何模块的函数

因此,正确的代码如下所示:

var obj = bmfont2json.bmfont2json(data);
var fs = require('fs');
var bmfont2json = require('bmfont2json.js');

var data = fs.readFileSync('Bitmap Font' + '/Roboto.fnt');
var obj = bmfont2json(data);

var json = JSON.stingify( obj );

我在我的机器上尝试了您的代码,我在代码中做了一些更改(
var data=fs.readFileSync(uu dirname++'/Bitmap Font'+'/Roboto.fnt');

请尝试以下代码:

var obj = bmfont2json(data);
var fs = require('fs');
var bmfont2json = require('bmfont2json');
var data = fs.readFileSync(__dirname+'/Bitmap Font' + '/Roboto.fnt');
var obj = bmfont2json(data);
var json = JSON.stringify( obj );
console.log(json);
info face="Arial" size=32 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
common lineHeight=32 base=26 scaleW=256 scaleH=256 pages=0 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0
chars count=0
{  "pages":[],
   "chars":[],
   "kernings":[],
   "info":"face":"Arial", 
   "size":32,
   "bold":0,
   "italic":0,
   "charset":"",
   "unicode":1,
   "stretchH":100,
   "smooth":1,
   "aa":1,
   "padding":[0,0,0,0],
   "spacing":[1,1], 
   "outline":0},
   "common":{
              "lineHeight":32,
              "base":26,
              "scaleW":256,
              "scaleH":256,
              "pages":0,
              "packed":0, 
              "alphaChnl":1,
              "redChnl":0, 
              "greenChnl":0, 
              "blueChnl":0
             }
}
示例。fnt:

var obj = bmfont2json(data);
var fs = require('fs');
var bmfont2json = require('bmfont2json');
var data = fs.readFileSync(__dirname+'/Bitmap Font' + '/Roboto.fnt');
var obj = bmfont2json(data);
var json = JSON.stringify( obj );
console.log(json);
info face="Arial" size=32 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
common lineHeight=32 base=26 scaleW=256 scaleH=256 pages=0 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0
chars count=0
{  "pages":[],
   "chars":[],
   "kernings":[],
   "info":"face":"Arial", 
   "size":32,
   "bold":0,
   "italic":0,
   "charset":"",
   "unicode":1,
   "stretchH":100,
   "smooth":1,
   "aa":1,
   "padding":[0,0,0,0],
   "spacing":[1,1], 
   "outline":0},
   "common":{
              "lineHeight":32,
              "base":26,
              "scaleW":256,
              "scaleH":256,
              "pages":0,
              "packed":0, 
              "alphaChnl":1,
              "redChnl":0, 
              "greenChnl":0, 
              "blueChnl":0
             }
}
用示例替换.fnt文件时,输出为:

var obj = bmfont2json(data);
var fs = require('fs');
var bmfont2json = require('bmfont2json');
var data = fs.readFileSync(__dirname+'/Bitmap Font' + '/Roboto.fnt');
var obj = bmfont2json(data);
var json = JSON.stringify( obj );
console.log(json);
info face="Arial" size=32 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
common lineHeight=32 base=26 scaleW=256 scaleH=256 pages=0 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0
chars count=0
{  "pages":[],
   "chars":[],
   "kernings":[],
   "info":"face":"Arial", 
   "size":32,
   "bold":0,
   "italic":0,
   "charset":"",
   "unicode":1,
   "stretchH":100,
   "smooth":1,
   "aa":1,
   "padding":[0,0,0,0],
   "spacing":[1,1], 
   "outline":0},
   "common":{
              "lineHeight":32,
              "base":26,
              "scaleW":256,
              "scaleH":256,
              "pages":0,
              "packed":0, 
              "alphaChnl":1,
              "redChnl":0, 
              "greenChnl":0, 
              "blueChnl":0
             }
}

请尝试上面的代码,然后让我知道。

我在我的机器上尝试了您的代码,我对您的代码做了一些更改(
var data=fs.readFileSync(u dirname+'/Bitmap Font'+'/Roboto.fnt');

请尝试以下代码:

var obj = bmfont2json(data);
var fs = require('fs');
var bmfont2json = require('bmfont2json');
var data = fs.readFileSync(__dirname+'/Bitmap Font' + '/Roboto.fnt');
var obj = bmfont2json(data);
var json = JSON.stringify( obj );
console.log(json);
info face="Arial" size=32 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
common lineHeight=32 base=26 scaleW=256 scaleH=256 pages=0 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0
chars count=0
{  "pages":[],
   "chars":[],
   "kernings":[],
   "info":"face":"Arial", 
   "size":32,
   "bold":0,
   "italic":0,
   "charset":"",
   "unicode":1,
   "stretchH":100,
   "smooth":1,
   "aa":1,
   "padding":[0,0,0,0],
   "spacing":[1,1], 
   "outline":0},
   "common":{
              "lineHeight":32,
              "base":26,
              "scaleW":256,
              "scaleH":256,
              "pages":0,
              "packed":0, 
              "alphaChnl":1,
              "redChnl":0, 
              "greenChnl":0, 
              "blueChnl":0
             }
}
示例。fnt:

var obj = bmfont2json(data);
var fs = require('fs');
var bmfont2json = require('bmfont2json');
var data = fs.readFileSync(__dirname+'/Bitmap Font' + '/Roboto.fnt');
var obj = bmfont2json(data);
var json = JSON.stringify( obj );
console.log(json);
info face="Arial" size=32 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
common lineHeight=32 base=26 scaleW=256 scaleH=256 pages=0 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0
chars count=0
{  "pages":[],
   "chars":[],
   "kernings":[],
   "info":"face":"Arial", 
   "size":32,
   "bold":0,
   "italic":0,
   "charset":"",
   "unicode":1,
   "stretchH":100,
   "smooth":1,
   "aa":1,
   "padding":[0,0,0,0],
   "spacing":[1,1], 
   "outline":0},
   "common":{
              "lineHeight":32,
              "base":26,
              "scaleW":256,
              "scaleH":256,
              "pages":0,
              "packed":0, 
              "alphaChnl":1,
              "redChnl":0, 
              "greenChnl":0, 
              "blueChnl":0
             }
}
用示例替换.fnt文件时,输出为:

var obj = bmfont2json(data);
var fs = require('fs');
var bmfont2json = require('bmfont2json');
var data = fs.readFileSync(__dirname+'/Bitmap Font' + '/Roboto.fnt');
var obj = bmfont2json(data);
var json = JSON.stringify( obj );
console.log(json);
info face="Arial" size=32 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
common lineHeight=32 base=26 scaleW=256 scaleH=256 pages=0 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0
chars count=0
{  "pages":[],
   "chars":[],
   "kernings":[],
   "info":"face":"Arial", 
   "size":32,
   "bold":0,
   "italic":0,
   "charset":"",
   "unicode":1,
   "stretchH":100,
   "smooth":1,
   "aa":1,
   "padding":[0,0,0,0],
   "spacing":[1,1], 
   "outline":0},
   "common":{
              "lineHeight":32,
              "base":26,
              "scaleW":256,
              "scaleH":256,
              "pages":0,
              "packed":0, 
              "alphaChnl":1,
              "redChnl":0, 
              "greenChnl":0, 
              "blueChnl":0
             }
}


请尝试上面的代码,然后告诉我。

您是否先运行命令安装程序包:npm install bmfont2json-gYes我先这么做了。您是否先运行命令安装程序包:npm install bmfont2json-gYes我先这么做了。非常感谢,但现在错误变成了
bmfont2json。bmfont2json
不是函数。@LordGoderick我只是意识到
bmfont2json
包最近一次更新是在两年多前,本月只下载了35次。作者可能已经放弃了这个项目,我强烈建议您不要使用它是的,我正在用另一个非常感谢,但是现在错误变成了
bmfont2json。bmfont2json
不是一个函数。@LordGoderick我刚刚意识到
bmfont2json
包最近一次更新是在两年多前,这个月只下载了35次。作者可能已经放弃了这个项目,我强烈建议您不要使用它是的,我正在用另一个如果上述代码不起作用,请使用example.fnt更改Robot.fnt文件。我已经编写了example.fnt文件。仍然是相同的错误,不确定发生了什么。我会继续找的。哦,在我的机器里工作得很好。好的,让我再看看。好的,谢谢,让我再看看。我肯定我做错了什么。您使用了什么节点命令来输出文件?我相信这就是我出错的地方。如果上面的代码不起作用,请用example.fnt更改Robot.fnt文件。我已经编写了example.fnt文件。仍然是相同的错误,不确定发生了什么。我会继续找的。哦,在我的机器里工作得很好。好的,让我再看看。好的,谢谢,让我再看看。我肯定我做错了什么。您使用了什么节点命令来输出文件?我相信这就是我错的地方。