我想创建一个 Nest.js 包,这样我就可以在多个 Nest.js 项目中重用一个控制器。
我已经签出库,但这似乎不是我想要的,因为似乎只能在 repo 中导入库。
拥有可以通过 npm 发布的库以便我可以在其他 Nest 项目中安装和导入它的最佳方法是什么?
这就是我最终这样做的方式
mkdir PACKAGE_NAME
cd PACKAGE_NAME
npm init // Follow the steps to initialize npm package
Run Code Online (Sandbox Code Playgroud)
npm install @nest/common rxjs reflect-metadata
npm install -d @types/node rimraf typescript
Run Code Online (Sandbox Code Playgroud)
package.json并更改/添加main, types,scripts到以下内容 "main": "dist/index.js",
"types": "dist/index.d.ts",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "rimraf dist && tsc",
"prepublish": "npm run build"
},
Run Code Online (Sandbox Code Playgroud)
跑 npm install
tsconfig.json在您的文件夹中创建文件
将以下代码添加到 tsconfig.json
"compilerOptions": {
"experimentalDecorators": true,
"target": "es2017",
"module": "commonjs",
"lib": ["es2017", "es7", "es6"],
"declaration": true,
"declarationMap": true,
"sourceMap": true,
"outDir": "./dist",
"rootDir": "./src",
"strict": true,
"noImplicitAny": false,
"strictNullChecks": false,
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"emitDecoratorMetadata": true
},
"exclude": [
"node_modules",
"dist"
]
}
Run Code Online (Sandbox Code Playgroud)
创建src文件夹。在此文件夹中添加您的 Nest 代码。
index.ts在您的src文件夹中添加一个文件。在此文件中,您导出您要在此包之外使用的 Nest 代码。例如:
import { CpuUtilizationModule } from "./cpu-utilization-observer.module";
import { CpuUtilizationService } from "./cpu-utilization.service";
export { CpuUtilizationModule, CpuUtilizationService }
Run Code Online (Sandbox Code Playgroud)
这会导出一个模块和一个服务,您可以在 Nest 项目中导入/提供
npm run build。这会将您的代码编译到dist文件夹中。现在您可以使用npm i PATH_TO_PACKAGE.
| 归档时间: |
|
| 查看次数: |
4303 次 |
| 最近记录: |