Comment exiger d'un autre fichier que le mécanisme national de prévention le fichier principal dans le nœud?
paquet.json:
...
"name": "mypackage",
"main": "src/index.js"
...
Structure de répertoire:
|- src/
|--- index.js
|--- other.js
Je peux exiger src/index.js
avec require('mypackage');
, mais comment puis-je exiger src/other.js
?
Si la réponse est require('mypackage/src/other');
, est-il un moyen de le faire donc je peux l'exiger avec require('mypackage/other');
(c'est à dire l'enseignement nœud de ce que le répertoire du fichier source est de votre module?
- Je serais personnellement heureux de connaître la réponse à cette question. Merci pour la question de l'Ajout aux favoris
- Malheureusement, je pense que la réponse à votre deuxième question est non. Je me suis retrouvé à vouloir la même chose cette semaine et à la recherche en elle, mais je n'ai pas trouver un moyen. Si je me trompe, je serai intéressé par la réponse aussi. Autant que je sache, le plus proche que vous pourriez venir serait de faire un
src/package.json
etnpm link
desrc/
lors de l'élaboration et de l'utilisation de son contenu lors de la publication ou de faire tout ce que vous avez besoin avec eux lors de la construction du paquet. - si vous souhaitez utiliser le chemin d'accès complet, vous devez faire attention à votre répertoire courant de l'endroit où vous faites l'exigent. Par exemple si vous faites exiger des autres dossier dans mypackage vous avez besoin d'écrire quelque chose comme ceci: require('../src/autres)
- Vous pouvez copier les fichiers dans le dossier racine dans le cadre de votre édition de script.
- La plupart des projets similaires avec des cas d'utilisation il suffit de placer tous leurs "publics" des modules directement dans le package racine du dossier, à l'aide des sous-répertoires pour des trucs internes.
Vous devez vous connecter pour publier un commentaire.
Autant que je sache, Vous devrez explicitement l'exposer à la racine:
Structure de répertoire:
Puis dans
/other.js
Maintenant vous pouvez le faire
require('mypackage/other')
Je suis actuellement à la recherche dans le exactement la même chose.
Package.json
a une propriété appelée "fichiers":http://blog.kewah.com/2014/npm-as-a-front-end-package-manager/
https://docs.npmjs.com/files/package.json
Mais je n'ai pas encore trouver comment faire un import/besoin d'un tel fichier.
Je n'ai pas vraiment voir un autre point dans la liste des fichiers, puis d'autres pour être en mesure de
import/require
eux?J'ai été en mesure d'importer un fichier à partir d'un paquet si elle a été inscrite dans ce fichier tableau.
Je suis en mesure d'importer le fichier css dans le package à l'aide de postcss-importation:
Ce n'est probablement pas votre cas d'utilisation, mais postcss d'importation utilise juste mnp sous le capot. Cela devrait donc fonctionner pour votre cas d'utilisation en tant que bien, je pense.
Cette question et a accepté de répondre semblent liés:
Node/MNP: Peut-on package npm exposer plus qu'un fichier?
Vous devrez explicitement exposer le fichier dans le dossier racine, mais de nombreux projets (y compris les anciennes versions de lodash) faire dans le cadre d'une pré-étape de publication. En fait il y a un paquet qui fait exactement ce que @Creynders suggère, en ajoutant
module.exports = require('./path/to/file')
fichiers dans la racine de votre dossier. Un temps, j'ai écrit un guide sur la mise en route, mais le résumé est assez simple.Installer
npm install --save-dev generate-export-aliases
Configurer
Utilisation
const other = require('my-package/other')
DISCLAIMER: je suis l'auteur de l'emballage