Как исключить папку, но включить все ее файлы и подпапку, пока npm publi sh в angular библиотеке - PullRequest
0 голосов
/ 05 мая 2020

Когда я создаю приложение библиотеки angular, я получаю артефакты в папке dist/. Это означает, что когда библиотека импортируется в другое приложение, это делается следующим образом:

import { XXX } from 'libname/dist'

Однако я бы хотел, чтобы оператор импорта был без папки dist. Я не могу изменить каталог, в котором выполняется команда npm publi sh, поэтому хотел бы получить решение (если возможно) с использованием свойств .npmignore или package. json (files или main).

Это возможно? Тот же вопрос размещен здесь введите здесь описание ссылки , но я не уверен, как удалить папку dist и сохранить файлы / подпапки в пакете с помощью npmignore, files и основных свойств.

1 Ответ

0 голосов
/ 05 мая 2020

Ваша библиотека должна иметь эту конфигурацию в 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

UPDATE:

«В настоящее время я копирую свой пакет. json в папку dist, а затем запускаю npm pack внутри папки dist. "

Пакетом gulp вы можете скопировать пакет. 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...