您的库必须具有以下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 从 root 复制到 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 文件目录中。
npm pack然后在 dist 文件夹中尝试。