nx 不做包管理,推荐搭配其他nomorepo包管理工具进行使用。 比如 lerna, yarn/pnpm/npm workspace
构建TS项目
- 使用nx脚手架进行初始化项目
npx create-nx-workspace --preset=ts
- 生成子项目
# 库项目, 可以指定compiler为swc, 不指定则默认tsc
nx generate @nrwl/js:lib --name=xxx --buildable --compiler=swc --publishable
Plugins
@nrwl/js
@nrwl/js:library(别名: lib)
生成指令: generate @nrwl/js:library [name] [options,...]
支持参数
| option | 默认值 | 解释 |
|---|---|---|
--name | 库名称 | |
--directory | 库存放文件夹位置 | |
--linter | eslint | 使用的代码校验工具, eslint或者 none |
--unitTestRunner | jest | 单元测试运行器, jest或 none |
--tags | 为项目添加tag,用于后期运行代码校验 | |
--skipFormat | 不格式化文件 | |
--skipTsConfig | 不更新tsconfig.json文件 | |
--includeBabelRc | 包含一个.babelrc配置文件 | |
--testEnvironment | jsdom | 单元测试运行器环境, jsdom、 node或 none |
--importPath | 其他项目引用该库所用的名称,比如 @howe/mylib | |
-P | 使用首字母大写的文件命名方式 | |
--js | 生成.js文件代替 .ts文件 | |
--strict | true | 启用tsconfig严格模式 |
--publishable | 是否生成可发布的库 | |
--buildable | 是否生成可构建的库 | |
--setParaserOptionsProject | 是否配置ESLint的 paraserOptions.project选项 | |
--config | project | 项目执行器是否应该被配置在workspace.json中 |
--skipTypeCheck | 是否跳过TS类型校验(用于SWC解析器) |
@nrwl/js:convert-to-swc
用于将 TSC 项目转换为 SWC 项目generate @nrwl/js:convert-to-swc [project] [options,...]
问题
nx build 依赖管理有问题,生成的package.json 会多依赖或缺依赖导致程序运行缺包.
无法构建出我们想要的package.json依赖结构