我正在慢慢地从PHP转换到Node.js,并试图找到类似于composer dumpautoload
的东西。感谢PSR-4,当在每个文件的开头使用此命令和简单的use
语句时,很容易访问PHP中任何文件中的任何类。
npm
似乎在管理包和依赖项方面表现出色,但在您自己的项目中具有相同的灵活性将避免创建require
语句,如果文件更改路径,这些语句很容易中断。
我要找的例子 - 同一文件夹中的2个文件:
一些testClass.js(类文件)
var testClass = {
sayHello: function () {
console.log('this is a test');
}
};
module.exports = testClass ;
通常这是你要放在另一个文件index.js文件中:
var testClass = require('./testClass');
testClass.sayHello();
但是想象一下你可以用一些应用程序或命令预先索引你所有的类(比如PHP的composer dumpautoload
,只需运行它:
var testClass = require('testClass');
testClass.sayHello();
我找不到任何似乎可以实现这一目标的解决方案。
我错过了什么?
最简洁的答案是不
有关详细信息,请继续阅读:
目前require
或import
目前的工作方式有两个主要挑战:
虽然PHP似乎已经开发了自己的标准并且有点在自己的联盟中,即使有人会开发一个等效的解决方案来实现Node.js / JavaScript的相同,我们仍然需要良好的IDE支持。为了获得良好的IDE支持,这种类型的更改将:
require
或import
变化可以支持绝对路径)here(https://gist.github.com/branneman/8048520)有几个答案,它们似乎都破坏了IDE的支持(我只用WebStorm测试过):
require
以支持/
:在重命名/重构时中断IDE支持。总的来说,鉴于IDE支持优先于代码可读性,看起来没有好的方法来使用Node.js实现对当前依赖关系管理的更改,而不需要社区支持这种更改。