node.js - npm-modul saknar filer efter publicering


Som referens är repot https://github.com/microsoftly/luis-response-builder.

Node-modulfilerna genereras med tsc och exporteras till dist-mappen. Jag har ett prepublishOnly-steg som tar bort dist-mappen, kör tsc och sedan kör testet mot den transpilerade js. Testen klarar sig när jag publicerar utan problem.

Problemet är att när jag installerar projektet någon annanstans, innehåller dist-mappen endast filen med sökvägen dist/src/index.js.

Jag kan för mitt liv inte lista ut varför filen saknas när den är installerad men inte när den är publicerad.

Svar #1

Citerar från npm-publish-dokumentationen:

Alla filer i paketkatalogen inkluderas om ingen lokal .gitignore eller .npmignore-fil finns. Om båda filerna finns och en fil ignoreras av .gitignore men inte av .npmignore kommer den att inkluderas.

Ditt repositories .gitignore-fil innehåller följande:

node_modules
dist
*.env
yarn-error.log

Eftersom dist ignoreras, committas det inte med npm publish, enligt dokumentationen.

Svar #2

Kolla in dokumentationen för package.json om files.

Eftersom du inte har inkluderat files-nyckeln kommer det endast att inkludera filen som anges i main (tillsammans med några andra standardfiler).

Värdet files är en array så du kan inkludera flera filer och/eller mappar.

t.ex :

files: [
  "dist",
  "config/somefile.js"
]

Relaterade artiklar