Me gustaría publicar un paquete npm que contenga mi fuente y archivos de distribución. Mi repositorio de Github contiene una srccarpeta que contiene archivos fuente JavaScript. El proceso de construcción genera una distcarpeta que contiene los archivos de distribución. Por supuesto, la distcarpeta no está registrada en el repositorio de Github.
¿Cómo publico un paquete npm de manera que cuando alguien lo haga npm install, reciba srctan bien como distcarpeta? Actualmente, cuando ejecuto npm publishdesde mi repositorio de git, solo srcse publica la carpeta.
Mi package.json se ve así:
{
"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": {
...
}
}

.gitignoreo.npmignore(parece que no lo hace cuando leo el documento) - @Naresh, por favor díganos de qué manera funcionó bien.Cuando usted
npm publish, si no tiene un.npmignorearchivo, npm usará su.gitignorearchivo (en su caso, excluyó ladistcarpeta).Para resolver su problema, cree un
.npmignorearchivo basado en su.gitignorearchivo, sin ignorar la carpeta dist .Soure: https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package
fuente
Ejemplo mínimo de cómo usar archivos de datos de un script
Otro caso de uso común es tener archivos de datos que sus scripts deben usar.
Esto se puede hacer fácilmente usando las técnicas mencionadas en: En node.JS, ¿cómo puedo obtener la ruta de un módulo que he cargado a través de require que es * no * mío (es decir, en algún node_module)
El ejemplo completo se puede encontrar en:
Con esta configuración, el archivo
mydata.txtse colocanode_modules/cirosantilli-data-files/mydata.txtdespués de la instalación porque lo agregamos a nuestrafiles:entrada depackage.json.Nuestra función
myfuncpuede entonces encontrar ese archivo y usar su contenido usandorequire.resolve. También solo funciona en el ejecutable,./cirosantilli-data-filespor supuesto.package.json
mydata.txt
index.js
cirosantilli-data-files
El
is-installed-globallypaquete es útil si desea generar rutas relativas a los archivos distribuidos dependiendo de si están instalados localmente o globalmente: Cómo saber si el paquete npm se instaló global o localmentefuente