我使用@nrwl/react
设置了一个基本的可扩展库:
nx g @nrwl/react:lib my-new-lib --publishable --importPath=@myorg/my-new-lib
字符串
然后在monorepo根目录下安装MUI:
npm install @mui/material @emotion/react @emotion/styled
型
并导入了一个MUI组件:
import { Button } from '@mui/material';
export function MyNewLib() {
return (
<div>
<h1>Welcome to MyNewLib!</h1>
<Button>Hello</Button>
</div>
);
}
export default MyNewLib;
型
最后,我使用以下命令构建库:
nx run my-new-lib:build
型
这是生成的package.json
:
{
"name": "@myorg/my-new-lib",
"version": "0.0.1",
"module": "./index.js",
"main": "./index.js",
"type": "module",
"types": "./index.d.ts"
}
型
MUI依赖项不会添加到生成的package.json
中。
我错过了什么?
这里有一个repo,如果你想试试的话:
2条答案
按热度按时间2g32fytz1#
最后找到了一个解决方案,将此添加到我的
nx.json
:字符串
在
project.json
中,这两个选项指向我的build
目标(我使用的是@nrwl/web:rollup
):型
i2byvkas2#
@camilo的回答很好,但在过去的一年里,NX发生了一些变化。
这篇Medium文章解释了发生了什么变化,
https://dev.to/this-is-learning/manage-nx-library-dependencies-with-the-nxdependency-checks-eslint-rule-2lem
Nx 16.4将@nx/dependency-checks ESLint规则引入到@nx/linter包中,用于在可构建或可扩展的Nx库项目的package.json源配置文件中验证、添加、删除和更新对等项
基本上,你的
libs
需要依赖于它们的package.json如果你计划将它们发布到npm(* 发布的包将丢失NX的上下文 *)。如果你不这样做,那么只需将
@nx/dependency-checks
更改为不是error
。字符串
他们在这里,
https://nx.dev/nx-api/eslint-plugin/documents/dependency-checks的