错误"无法解析 http ..."当运行ng build --prod时,因为XMLRPC NPM包?



我在angular8项目中使用xmlrpc-npm包。

问题是,当试图构建项目时,它会在未解析http或https:时出错

Module not found: Error: Can't resolve 'https' in ...
Module not found: Error: Can't resolve 'http'

经过调查,这些线产生了问题,因为angular有自己的HTTPClientModule。有什么想法吗?

var http  = require('http')
, https = require('https')
, url   = require('url')

许多npm包在最新版本的angular CLI中不再受支持,现在它是内置的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);
});
});

相关内容

最新更新