如何正确配置我的 tsconfig.json,以便在使用 npm 运行 build 时只需要必要的文件?

How can I correctly configure my tsconfig.json so only the files necessary are required when using npm run build?

概览

我有一个辅助函数库,我想导入到我的项目中。

问题

如何正确配置我的 tsconfig.json,以便在使用 npm 运行 build 时只需要必要的文件?我不想包含任何额外的文件。

tsconfig.json

{
  "compilerOptions": {
    "target": "ESNext",
    "module": "CommonJS",
    "declaration": true,
    "checkJs": true,
    "sourceMap": true,
    "outDir": "./dist",
    "removeComments": true,
    "strict": true,
    "noImplicitAny": true,
    "noImplicitThis": true,
    "noImplicitReturns": true,
    "skipLibCheck": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
  },
  "include": ["src/**/*"],
  "compileOnSave": false,
  "buildOnSave": false
}

包含在package.json

  "main": "./dist/index.js",
  "types": "./dist/index.d.ts",

导入项目时 node_modules 中显示的内容

  1. src 应该显示吗??
  2. 如何删除 jest.config.js

tsconfig.json 文件与最终 npm 包中的内容没有任何关系。默认情况下(或多或少)项目目录中包含的所有内容也将添加到包中(node_modules 文件夹除外)。

有两种方法可以控制包裹的内容

  1. 创建一个名为 .npmignore 的文件并添加每个 file/folder 您希望从您的包中排除 的文件。这类似于 .gitignore 文件。有关详细信息,请参阅 docs

  2. 您可以将 files 数组添加到您的 package.json 并添加您想要包含的所有 files/folders 在你的包裹里。有关详细信息,请参阅 docs

包中需要包含哪些文件,取决于包提供的功能。最终包可能不需要测试配置,源代码也不需要...

如果您想从 NPM 包中排除某些文件,请在 .npmignore 文件中指定它们的列表。这样,当您发布新版本的包时,排除文件将从您那里消失 node_modules.

此外,如果您使用 yarn,您可以在 .yarnclean 文件中指定安装包后要删除的文件列表。但是这样文件将从 node_modules.

中的所有包中删除

如果您还没有发布您的包并将其与 npm linkyarn link 一起使用,则无法从 node_modules.

中删除文件

事实上,您可以指定包中除distpackage.jsonREAMDE.md

之外的所有文件