找不到模块:错误:无法解析“ fs”

时间:2019-09-16 13:04:53

标签: ionic-framework ionic4 ionic-native

以下是我面临的两个错误(图片) 我正在使用Ionic 4。 一切正常,但是一旦我开始调用WooCommerce API并在构造函数中使用它,就会出现以下两个错误。

我已经导入了Woocommerce API,但是当我在构造函数中对其进行初始化时,它同时显示了enter image description here和这个错误。enter image description here

2 个答案:

答案 0 :(得分:1)

您似乎正在使用this package,该警告已过时:

  
      
  • 2019-07-29:此客户端已过时,将不再接收更新,新的JavaScript库以@ woocommerce / woocommerce-rest-api的名称提供。
  •   

但是,这是一个node.js包。之所以失败,是因为fs代表文件系统,并且在浏览器中不存在。

Node.js用于本地开发,而不是用于浏览器软件包,这是Ionic 4的构建基础。

但是,如果您真的想使用它,那么本指南将向您展示如何使用browserify进行包装:

  

将Node.js模块转换为浏览器库

     

解决方案是使用Browserify将模块及其所有依赖项捆绑在一个JavaScript文件中,因此我们不需要Ionic 4使用的Cordova Webview(无头浏览器)中不可用的任何外部Node.js依赖项。

https://www.techiediaries.com/woocommerce-ionic-2/

我不知道您将获得Ionic 2的帮助,但我只是向您展示这一点,以证明node.js软件包不适用于Ionic。

更新

根据您的评论,您说您在定义全局变量时遇到问题。

搜索Google似乎已解决问题,请尝试:

  

我认为目前最好的选择是包括

     

(window as any).global = window;

     

在您的polyfills.ts文件中,如下所述:   angular/angular-cli#9827 (comment)

答案 1 :(得分:0)

您必须转到\node_modules\@angular-devkit\build-angular\src\angular-cli-files\models\webpack-configs\browser.js到文件夹node: false替换 node: { crypto: true, stream: true, fs: "empty", net: "empty", tls: "empty" }, 它对我有用。