簡體   English   中英

是否可以在沒有相對路徑的情況下從項目目錄之外要求模塊?

[英]Is it possible to require modules from outside of your project directory without relative paths?

我正在嘗試構建一個本地 JS 模塊庫以在 Node 項目中使用。

如果一個新項目位於/Users/me/projects/path/to/new/project/並且我的庫文件位於/Users/me/projects/library/*.js有沒有辦法訪問這些文件而不使用相對路徑?

/Users/me/projects/path/to/new/project/app.js你可以像這樣需要 foo.js:

var foo = require('../../../../../library/foo')這樣就可以了,但這很笨拙,如果文件移動,則必須更新相對路徑。

我已經嘗試過requireFromapp-module-path ,但沒有運氣,因為它們是相對於項目根目錄的。

關於如何從項目目錄外部獲取文件的任何想法?

提前致謝!

var librarypath = '/Users/me/projects/library/';
// or if you prefer...
// var librarypath = '../../../../../library/';
var foo = require(librarypath + 'foo.js');

……或者多打扮一點……

function requirelib(lib){ return require('/Users/me/projects/library/'+lib+'.js'); }
var foo = requirelib('foo');
var bar = requirelib('bar');

我多次遇到同樣的問題。 這可以通過使用basetag npm 包來解決。 它本身不一定是必需的,僅當它在node_modules內創建一個指向您的基本路徑的符號鏈接時才安裝。

const localFile = require('$/local/file')
// instead of
const localFile = require('../../local/file')

使用$/...前綴將始終引用與您的應用程序根目錄相關的文件。

免責聲明:我創建了basetag來解決這個問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM