Reutilizando mis propios modules de JavaScript sin usar routes relativas

Soy nuevo en el desarrollo de JavaScript y podría hacer algunos consejos con respecto a la mejor manera de trabajar con múltiples modules de mi propia creación.

Module1 –src —- a.js —- b.js

Module2 –src —- c.js —- d.js

Module3 –src —- e.js —- f.js

Module4 –src —- g.js —- h.js

Ahora cada module es una colección de files js que usan module.exports para exportar las funciones que necesitan.

En este ejemplo, Module1 y Module2 son modules de biblioteca. Module2 depende de Module1. Ambos modules son independientes de la plataforma y pueden ejecutarse dentro de un browser o nodejs.

Module3 es un module de proyecto que depende tanto de Module2 como de Module1. Está diseñado para un browser y usa browserify para combinarlos todos en un package.

Module4 es otro module de proyecto que también depende de Module2 y Module1. Esto está diseñado para ejecutarse bajo nodejs.

Cada module tiene su propio repository git.

Ahora el problema que estoy teniendo tiene que ver con las routes relativas dentro del requerimiento. Por ejemplo, c.js actualmente requiere ("../../ Module1 / src / a.js"); Del mismo modo h.js requiere ("../../ Module2 / src / c.js");

Esto hace que la estructura de carpetas sea un dolor absoluto y cada proyecto tiene que ser clonado desde git en la configuration correcta.

Lo siguiente es lo que estoy tratando de lograr.

  1. Para eliminar routes relativas, simplemente lo necesito ("ModuleX / src / foo.js"); Esto debe funcionar tanto con browserify como con nodejs.

  2. Para clonar un module de proyecto de git y hacer que obtenga todos sus modules dependientes (¿tal vez los submodules de Git?). No me importa la estructura de carpetas, ya que esto debería resolverse utilizando el punto mencionado anteriormente.

  3. Una vez que un proyecto y sus modules dependientes se han clonado para poder editar cada uno de estos modules, realice cambios y empújelos a su repository git individual.

Me imagino que lo que estoy tratando de hacer es bastante estándar. Creando mis propios modules y reutilizándolos en diferentes proyectos. ¿Estoy tratando de resolverlo de la manera estándar? He leído que hay diferentes maneras de lograr esto usando NODE_PATH que es compatible tanto con el nodo como con el browser, pero ambos lo desalientan. Browserify admite una opción de routes, pero no funciona para el nodo. Lea también acerca de cómo colocar los modules dentro de node_modules, pero no está seguro de cómo eso podría ayudar con las routes relativas.

Cualquier consejo sería muy apreciado

Gracias

Lo que probablemente quiera hacer es enviar su código reutilizable a git (aquí GitHub) y luego npm install <git remote url>: Un ejemplo sería npm install git+https://isaacs@github.com/npm/npm.git . Por otro lado, su repository necesita un package.json y un index.js que index.js su código o lo señale. Alternativamente, puede definir la location de su file principal en el package.json través de la key main:"" .

Las dependencies entre esos proyectos se definirían en el package.json respectivo. package.json s. Tras la installation de npm , es mágico evitar dependencies circulares, almacenamiento en caching, etc.

Una vez que haya hecho todo eso, podrá simplemente var x = require("ModuleX") para get ModuleX/src/foo.js si así lo desea.

Alternativamente, use los modules privados de npm .

    Intereting Posts