Je souhaite publier un package npm contenant ma source ainsi que les fichiers de distribution. Mon référentiel Github contient un src
dossier contenant les fichiers source JavaScript. Le processus de génération génère un dist
dossier contenant les fichiers de distribution. Bien sûr, le dist
dossier n'est pas archivé dans le référentiel Github.
Comment publier un package npm de manière à ce que lorsque quelqu'un le fasse npm install
, il obtienne src
ainsi qu'un dist
dossier? Actuellement, lorsque j'exécute à npm publish
partir de mon référentiel git, seul le src
dossier 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": {
...
}
}
.gitignore
ou.npmignore
(il semble que ce ne soit pas le cas comme j'ai lu la doc) - @Naresh s'il vous plaît nous dire de quelle manière a fonctionné correctement.Lorsque vous
npm publish
, si vous n'avez pas de.npmignore
fichier, npm utilisera votre.gitignore
fichier (dans votre cas, vous avez exclu ledist
dossier).Pour résoudre votre problème, créez un
.npmignore
fichier basé sur votre.gitignore
fichier, sans ignorer le dossier dist .Soure: https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package
la source
Exemple minimal d'utilisation des fichiers de données à partir d'un script
Un autre cas d'utilisation courant est d'avoir des fichiers de données que vos scripts doivent utiliser.
Cela peut être fait facilement en utilisant les techniques mentionnées à: Dans node.JS comment puis-je obtenir le chemin d'un module que j'ai chargé via require qui n'est * pas * le mien (c'est-à-dire dans certains node_module)
L'exemple complet peut être trouvé à:
Avec cette configuration, le fichier
mydata.txt
est placénode_modules/cirosantilli-data-files/mydata.txt
après l'installation car nous l'avons ajouté à notrefiles:
entrée depackage.json
.Notre fonction
myfunc
peut ensuite trouver ce fichier et utiliser son contenu en utilisantrequire.resolve
. Cela fonctionne également uniquement sur l'exécutable,./cirosantilli-data-files
bien sûr.package.json
mydata.txt
index.js
cirosantilli-data-files
Le
is-installed-globally
package est alors utile si vous souhaitez générer des chemins relatifs vers les fichiers distribués selon qu'ils sont installés localement ou globalement: Comment savoir si le package npm a été installé globalement ou localementla source