本地包的 npm 安装缺少文件

npm install of a local package has missing files

我有一个采用这种格式的项目

├── functions/
│   ├── src
│   ├── lib
│   ├── package.json
├── shared/
│   ├── src
│   |   ├── index.ts
|   |   ├── interfaces.ts
|   |   └── validator_classes.ts
│   ├── lib
│   |   ├── index.js
|   |   ├── interfaces.js
|   |   └── validator_classes.js
│   └── package.json
└── frontend/
    . . .

shared 有接口并且 类 在前端和函数之间共享。

我在函数中执行 npm build 然后在函数或前端中执行 npm install shared node_modules/shared 部分看起来像这样

└── shared/
    ├── src
    |   ├── index.ts
    |   ├── interfaces.ts
    |   └── validator_classes.ts
    └── lib
        └── index.js

并且缺少 lib 中的 interfaces.jsvalidator_classes.js 文件。 src 是一样的

这里是共享的package.json

{
  "name": "shared",
  "version": "1.0.2",
  "description": "",
  "main": "lib/index.js",
  "types": "lib/index.d.ts",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "tsc -d"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "class-validator": "^0.10.0"
  },
  "devDependencies": {}
}

这里是shared

的ts配置
{
  "compilerOptions": {
    "module": "commonjs",
    "noImplicitReturns": true,
    "noUnusedLocals": true,
    "rootDir": "src/",
    "outDir": "lib/",
    "sourceMap": false,
    "strict": true,
    "target": "es2017",
    "experimentalDecorators": true,
    "strictPropertyInitialization": false
  },
  "compileOnSave": true,
  "include": [
    "src"
  ],
  "files": [
    "src/index.ts",
    "src/formatter_interfaces.ts",
    "src/validator_classes.ts",
  ],
  "exclude": [
    "src/__tests__"
  ]
}

编辑:

我通过将共享中 package.json 的主要 属性 更改为 /lib/validator_classes.js 来测试它,现在它只安装该文件。

我需要添加一个

"files": [
    "lib"
]

到package.json