[英]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')
这样就可以了,但这很笨拙,如果文件移动,则必须更新相对路径。
我已经尝试过requireFrom和app-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')
使用$/...
前缀将始终引用与您的应用程序根目录相关的文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.