browserify:-未捕获的TypeError:fs.​​readFileSync不是函数

时间:2018-10-03 19:04:42

标签: javascript nlp browserify

我正在尝试在代码中使用自然的.js,在我使用过browserify的客户端上使用它,但它给出了错误

Uncaught TypeError: fs.readFileSync is not a function
at loadDictionary (main.js:10999)
at Object.<anonymous> (main.js:10894)
at Object.69../base_stemmer_id (main.js:11175)
at o (main.js:1)
at main.js:1
at Object.44../analyzers/sentence_analyzer (main.js:6380)
at o (main.js:1)
at main.js:1
at Object.1.natural (main.js:23)
at o (main.js:1)

尝试的代码是

var natural =require("natural");
var tokenizer =new natural.WordTokenizer();
console.log(tokenizer.tokenize("my name is akash"));

有什么帮助吗?

3 个答案:

答案 0 :(得分:0)

来自npm page for natural.js

  

“自然”是 nodejs 的通用自然语言工具。

由于它是为Node.js构建的,因此它可能使用特定于节点的模块,例如fs,该模块允许Node访问文件系统。 fs模块不在前端。

因此,当natural.js尝试要求fs(我猜是使用Browserify)时,它没有获得Node拥有的实际模块,因此无法调用readFileSync方法。

答案 1 :(得分:0)

它正在尝试访问文件系统库fs,该文件系统库在浏览器中不可用。不幸的是,Browserify仅将node.js样式的模块导入(例如require('package-name');)转换为浏览器可以理解的形式。并不能使所有的node.js软件包都能在浏览器中正常工作。

来自browserify.org

  

浏览器没有定义require方法,但是Node.js有。借助Browserify,您可以编写使用require的代码,就像在Node中使用代码一样。

答案 2 :(得分:0)

在尝试浏览基于Natural的NLP库时,我遇到了同样的问题。最终,我的解决方案是不使用Natural(自然),而移动茎杆/增香剂。现在,我已经在浏览器中运行了NLP库捆绑包,您可以在这里找到它:https://github.com/axa-group/nlp.js/tree/master/dist 要更好地使用它,请阅读文档。