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