您的库必须在angular.json 下的architect > options > project 中有此配置:
"my-library": {
"projectType": "library",
...
"architect": {
"build": {
"builder": "@angular-devkit/build-ng-packagr:build",
"options": {
...
"project": "projects/my-library/ng-package.json"
},
...
而且你的 ng-package.json 文件必须是:
{
"$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
"dest": "../../dist/my-library",
"lib": {
"entryFile": "src/public-api.ts",
"umdModuleIds": {
}
}
}
您还必须有一个public-api.ts 文件:
// public-api.ts
/*
* Public API Surface of my-library
*/
export * from './lib/my-library.module';
...
你有所有这些文件和配置吗?
这些都是在您创建库时应该自动进行的配置。
供参考,您可以观看:
https://angular.io/guide/creating-libraries
更新:
“目前我正在将我的 package.json 复制到 dist 文件夹中,然后在 dist 文件夹中运行 npm pack。”
使用 gulp 批处理,您可以将 package.json 从根目录复制到 dist:
// /gulpfile.js
var gulp = require('gulp');
gulp.task('default', [], function() {
gulp.src(['../../my-library/package.json']) // pay attenction to your relative path where you run gulp.
.pipe(gulp.dest('my-library/dist'));
});
运行它:
gulp default
在 gulp 文件目录中。
然后尝试在 dist 文件夹中使用npm pack。