gpt4 book ai didi

create-react-app - Lerna monorepo NestJS & Create React App : Works find in dev mode, 但构建失败

转载 作者:行者123 更新时间:2023-12-03 20:49:50 26 4
gpt4 key购买 nike

我用两个包创建了一个 lerna monorepo:一个普通的 NestJS 应用程序和 CRA 生成的应用程序。在这里,我使用 craco 从 monorepo 导入其他包。
在 NestJS 包中,我有一个简单的类,我想在 react 应用程序中共享/使用它。它包含一个节点导入和一些方法:

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!';
}
}
在开发模式 ( yarn run start ) 下运行 CRA 工作正常。我可以创建很多猫并调用它们的方法。所以基本上 monorepo 设置是有效的。但是,如果我运行 yarn run build在 CRA 中,我收到此错误: Attempted import error: 'i18n-iso-countries' does not contain a default export (imported as 'countries').如果我删除 cat 类中的 i18n-iso-countries 导入,它构建得很好。我尝试了几种变体,例如命名导入 import {alpha2ToAlpha3} from 'i18n-iso-countries'import * as countries from 'i18n-iso-countries' .在 CRA 中使用 yarn start 时,它们都可以正常工作,但在创建生产版本时失败。
我的克拉科配置。
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]);

关于create-react-app - Lerna monorepo NestJS & Create React App : Works find in dev mode, 但构建失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63464653/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com