Установка локального пакета NPM из его папки игнорирует конфигурацию «файлов» пакета

#node.js #npm #babeljs #node-modules #npm-install

Вопрос:

TL;DR Упаковка моего локального пакета npm отлично работает, и он игнорирует файл, не распространяемый, но установка его из папки включает все файлы.

Окружающая среда:

  • Узел: v14
  • NPM: v7
  • Вавилон: V7

У меня есть небольшая библиотека компонентов многократного использования ( ./common/components ) Я хочу делиться между своими приложениями. Я использую Babel для встраивания src кода в lib папку, которая, похоже, работает нормально. Когда я запускаю npm pack команду, я вижу, что lib package.json в файл package TGZ включаются только папка и файлы. Но когда я устанавливаю пакет в одно из своих приложений с npm i ../../common/components помощью , весь код пакета ( src , node_modules , .babelrc.json package-lock.json , и т.д.) Включается В папку приложения. node_modules

Что я делаю не так, или я чего-то не понимаю? Есть ли способ установить только эту lib папку?

Вот код моего пакета компонентов:

  • package.json :
     {
      "name": "components",
      "version": "1.0.0",
      "main": "lib/*",
      "files": [
        "lib/*"
      ],
      "scripts": {
        "clean": "rimraf ./lib",
        "postinstall": "npm run build",
        "prebuild": "npm run clean",
        "build": "babel src --out-dir lib --copy-files"
      },
      "devDependencies": {
        "@babel/cli": "7.14.5",
        "@babel/core": "7.14.6",
        "@babel/preset-env": "7.14.7",
        "rimraf": "3.0.2"
      }
    }
     
  • .babelrc.json :
     {
      "presets": ["@babel/preset-env"]
    }
     
  • Вот мой вывод из npm pack :

    введите описание изображения здесь

Вот код моего приложения:

  • package.json :
     {
      ...
      "dependencies": {
        "components": "file:../../common/components",
        ...
      },
      ...
    }
     
  • Here’s what gets installed to the app’s node_modules folder:

    введите описание изображения здесь