web-dev-qa-db-fra.com

Comment publier un paquet npm avec des fichiers de distribution?

J'aimerais publier un paquet npm contenant mon source ainsi que des fichiers de distribution. Mon référentiel Github contient le dossier src qui contient les fichiers source JavaScript. Le processus de génération génère le dossier dist contenant les fichiers de distribution. Bien entendu, le dossier dist n'est pas archivé dans le référentiel Github.

Comment puis-je publier un paquet npm de manière à ce que, lorsque quelqu'un fait npm install, il reçoive src ainsi que le dossier dist? Actuellement, lorsque je lance npm publish à partir de mon référentiel git, seul le dossier src est publié.

Mon package.json ressemble à ceci:

{
  "name": "join-js",
  "version": "0.0.1",
  "homepage": "https://github.com/archfirst/joinjs",
  "repository": {
    "type": "git",
    "url": "https://github.com/archfirst/joinjs.git"
  },
  "main": "dist/index.js",
  "scripts": {
    "test": "gulp",
    "build": "gulp build",
    "prepublish": "npm run build"
  },
  "dependencies": {
    ...
  },
  "devDependencies": {
    ...
  }
}
96
Naresh

Jetez un coup d’œil au champ "fichiers" du fichier package.json https://docs.npmjs.com/files/package.json#files

De la documentation:

Le champ "fichiers" est un tableau de fichiers à inclure dans votre projet. Si vous nommez un dossier dans le tableau, il inclura également les fichiers qu'il contient. (Sauf s'ils seraient ignorés par une autre règle.)

83
Eugene Nezhuta

Lorsque vous npm publish, si vous n'avez pas de fichier .npmignore, npm utilisera votre fichier .gitignore (dans votre cas, vous avez exclu le dossier dist].

Pour résoudre votre problème, créez un fichier .npmignore basé sur votre fichier .gitignore, sans ignorer le dossier dist .

Soure: https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package

141
topheman