npm Nx在生成的package.json上缺少依赖项

ibps3vxo  于 2024-01-08  发布在  其他
关注(0)|答案(2)|浏览(149)

我使用@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,如果你想试试的话:

2g32fytz

2g32fytz1#

最后找到了一个解决方案,将此添加到我的nx.json

"pluginsConfig": {
    "@nrwl/js": {
      "analyzeSourceFiles": true
    }
  }

字符串
project.json中,这两个选项指向我的build目标(我使用的是@nrwl/web:rollup):

"updateBuildableProjectDepsInPackageJson": true,
"buildableProjectDepsInPackageJsonType": "dependencies"

i2byvkas

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

{
  "files": ["*.json"],
  "parser": "jsonc-eslint-parser",
  "rules": {
    "@nx/dependency-checks": [
      "warn",
      {
        "ignoredFiles": ["{projectRoot}/vite.config.{js,ts,mjs,mts}"]
      }
    ]
  }
}

字符串
他们在这里,
https://nx.dev/nx-api/eslint-plugin/documents/dependency-checks

相关问题