我在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
答案 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);
});
});