3 Node.js proietta principale - quadro - Repository
principale ha gli altri due progetti collegati tramite collegamento NPM.
In una prova ho avvolto il requisito in un metodo. Ho alcuni problemi di risoluzione progetti legati (dettagli vedi sotto)
codice semplificato simile a questo:
module.export.resolve = function(file){
[...]//Some more logik to handle relative pathes
return require(file)
}
Questo funziona bene nella maggior parte degli scenari. Ho anche lavorato fuori per ottenere maneggiato con parenti pathes (alzando lo sguardo per il chiamante e applicare sentieri basate su questa strada)
ora questo è in progetto quadro che è collegata (link NPM) per Main Project. Project main ha anche Repository di progetto collegati.
Ora in Main Project ho:
require('ProjectRepositories/foo') // Works as expected
myRequire.resolve('ProjectRepositories/foo') // Returns MODULE_NOT_FOUND "Cannot find module 'ProjectRepositories/foo'
Suppongo che il problema è che Repository Progetto ist non legato nel quadro Progetto. Ma c'è un altro modo che collegarli?
Preferirei avere meno dipendenze. Qualche suggerimento su questo?
Non mi è del tutto chiaro come sia la tua struttura. Potresti chiarire? Nel frattempo, lo sapevi che puoi avere un ['NODE_PATH'] (https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders) env var? – gustavohenke
Dici "funziona come previsto" ma non dici cosa restituisce. Quindi, potrebbe restituire lo stesso. Da quello che hai postato, fa esattamente la stessa cosa, tranne che hai scritto una logica aggiuntiva che potrebbe effettivamente rovinare ciò che richiede importazioni. Se crei una funzione resolve2 che restituisce direttamente 'require (file)', dovrebbe funzionare esattamente come la richiesta diretta '' '('ProjectRepos/foo')'. Quindi probabilmente concluderei che la tua logica personalizzata è in realtà dove si trova l'errore, presumo. – EricG