由于xmlrpc npm软件包,在运行ng build --prod时出现错误“无法解析http ...”?

时间:2019-10-31 14:32:03

标签: angular npm xmlhttprequest xml-rpc angular8

我在angular8项目中使用了xmlrpc npm软件包。

问题是,当尝试构建项目时,它在无法解析http或https时给出了错误:

9222

经过调查,这些是产生问题的线,因为angular有其自己的Module not found: Error: Can't resolve 'https' in ... Module not found: Error: Can't resolve 'http' 。有什么想法吗?

HTTPClientModule

1 个答案:

答案 0 :(得分:0)

Angular CLI的最新版本不再支持许多npm软件包,因为它是内置的Node模块,因此您需要手动导入这些模块以进行更改 node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/webpack-configs/browser.js

找到

node:false

false替换为所需的软件包

node:{http:true,https:true,url:true} 

我知道这是一种解决方法,而不是可复制的修复程序,但它可以正常工作

您可以通过创建补丁文件并在npm安装后运行它来使其更加动态 这应该是这样的

node buildPatch.js

buildPatch.js

const fs = require('fs');
const path = 'node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/webpack-configs/browser.js';

fs.readFile(path, 'utf8', function (err,data) {
  if (err) {
    return console.log(err);
  }
  var result = data.replace(/node: false/g, 'node: {http:true,https:true,url:true}');

  fs.writeFile(path, result, 'utf8', function (err) {
    if (err) return console.log(err);
  });
});