Visión general
Tengo una biblioteca de funciones auxiliares que quiero importar a mis proyectos.
Pregunta
¿Cómo puedo configurar correctamente mi tsconfig.json para que solo se requieran los archivos necesarios al usar npm run build? No quiero que se incluyan archivos adicionales.
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 } Incluido en package.json
"main": "./dist/index.js", "types": "./dist/index.d.ts", Qué se muestra en node_modules cuando se importa a un proyecto
src ?jest.config.js ?El archivo tsconfig.json no tiene nada que ver con lo que termina en el paquete final de npm. De forma predeterminada (más o menos), todo lo que está contenido en el directorio de su proyecto también se agregará a su paquete (excepto la carpeta node_modules ).
Hay dos formas de controlar el contenido de su paquete
Cree un archivo llamado .npmignore y agregue todos los archivos/carpetas que desee excluir de su paquete. Esto funciona de manera similar al archivo .gitignore . Vea los documentos para más detalles.
Puede agregar una matriz de files a su package.json y agregar todos los archivos/carpetas que desea incluir en su paquete. Ver documentos para más detalles.
Los archivos que deben estar en su paquete dependen de la funcionalidad que proporciona su paquete. La configuración de prueba probablemente no sea necesaria para el paquete final, ni tampoco la fuente...
Si desea excluir algunos archivos de su paquete NPM, especifique una lista de ellos en el archivo .npmignore . De esta manera, cuando publique una nueva versión del paquete, el archivo excluido desaparecerá de sus node_modules.
Además, si usa yarn, puede especificar la lista de archivos que desea eliminar después de instalar paquetes en el archivo .yarnclean . Pero de esta forma, los archivos se eliminarán de todos los paquetes en node_modules.
Si no ha publicado su paquete y lo usa con npm link o yarn link , no puede eliminar el archivo de node_modules.
De hecho, puede especificar todos los archivos del paquete excepto dist , package.json y REAMDE.md