Lerna monorepo NestJS&;Create-React-App:Works-find处于开发模式,但构建失败
我创建了一个带有两个包的lerna monorepo:一个香草NestJS应用程序和CRA生成的应用程序。在这里,我使用craco从monorepo导入其他包 在NestJS包中,我有一个简单的类,我想在react应用程序中共享/使用它。它包含一个节点导入和一些方法:Lerna monorepo NestJS&;Create-React-App:Works-find处于开发模式,但构建失败,create-react-app,lerna,monorepo,craco,Create React App,Lerna,Monorepo,Craco,我创建了一个带有两个包的lerna monorepo:一个香草NestJS应用程序和CRA生成的应用程序。在这里,我使用craco从monorepo导入其他包 在NestJS包中,我有一个简单的类,我想在react应用程序中共享/使用它。它包含一个节点导入和一些方法: import countries from 'i18n-iso-countries'; export class Cat { constructor(private readonly name: string) {}
import countries from 'i18n-iso-countries';
export class Cat {
constructor(private readonly name: string) {}
public get from() {
return countries.alpha2ToAlpha3('DE');
}
public makeSound() {
return 'Meow!';
}
}
在开发模式(纱线运行开始
)下运行CRA可以正常工作。我可以创造很多猫,并调用它们的方法。因此,monorepo的设置基本上是可行的。但是,如果我在CRA中运行warn run build
,我会得到以下错误:尝试导入错误:“i18n iso国家”不包含默认导出(作为“国家”导入)。
如果我在cat类中删除i18n iso countries导入,它就可以正常构建。我尝试了几种变体,例如命名的导入import{alpha2ToAlpha3}来自“i18n iso国家”
和import*来自“i18n iso国家”
。在CRA中开始使用纱线时,它们都工作良好,但在创建生产构建时失败
我的craco配置
const path = require("path");
const { getLoader, loaderByName } = require("@craco/craco");
const absolutePath = path.join(__dirname, "../backend");
http: module.exports = {
webpack: {
alias: {},
plugins: [],
configure: (webpackConfig, { env, paths }) => {
const { isFound, match } = getLoader(webpackConfig, loaderByName("babel-loader"));
if (isFound) {
const include = Array.isArray(match.loader.include)
? match.loader.include
: [match.loader.include];
match.loader.include = include.concat[absolutePath];
}
return webpackConfig;
},
},
};
concat语法似乎有缺陷。尝试:
match.loader.include=include.concat([absolutePath]);
您好,为什么会出现此警告:分配给原语的值将丢失
?