从其文件夹安装本地 NPM 包会忽略该包的“文件”配置

JP *_*dom 5 node.js npm node-modules babeljs npm-install

TL;DR 打包我的本地 npm 包工作正常,它忽略非分发文件,但从它的文件夹安装它包括所有文件。

环境:

  • 节点:v14
  • 国家公共管理机构:v7
  • 通天塔:V7

我有一个小型可重用组件库 ( ./common/components),我想在我的应用程序之间共享。我正在使用 Babel 将其src代码构建到一个lib文件夹中 - 这似乎工作正常。当我运行npm pack命令时,我可以看到只有lib文件夹和package.json文件包含在包 TGZ 文件中。但是,当我使用 将该包安装在我的一个应用程序中时npm i ../../common/components,该包的所有代码(srcnode_modules.babelrc.jsonpackage-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"
      }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • .babelrc.json

    {
      "presets": ["@babel/preset-env"]
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 这是我的输出npm pack

    在此输入图像描述

这是我的应用程序的代码:

  • package.json

    {
      ...
      "dependencies": {
        "components": "file:../../common/components",
        ...
      },
      ...
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 以下是安装到应用程序node_modules文件夹中的内容:

    在此输入图像描述