2015-01-08 137 views
0

在PHP中,我用来做这样的事情:摆脱长期需要串

<?php 

use Vendor/Namespace/Bundle; 
$bundle = new Bundle(); 

什么这里我感兴趣的是,继PSR-4约定(或任何其他约定),我们会自动可能需要一个PHP文件并使用其内容。有什么办法可以在Javascript中做到这一点,或者如何不使用一些丑陋的require('../../../../../../../mymodule.js');

回答

1

$NODE_PATH变量设置为您希望require默认查看的任何位置。

http://nodejs.org/api/modules.html#modules_loading_from_the_global_folders

例如,将其设置为/user/project/lib;,您可以从/user/project/test/test.js开始require('mymodule.js'),它将起作用。

+0

我刚刚测试了你的提议,当我在终端中定义了我的'NODE_PATH',但是在执行'console.log(process.env.NODE_PATH = __dirname +'/ src')时,它工作正常。 require('MA/MessagesBundle/MessagesBundle');'它不起作用。 – palra

+0

是的,这很不幸,它不会那样工作。可能是因为它是在'require()'本身初始化之前读取的,一旦它有了它,如果稍后再更改它,则无关紧要。如果您只是在应用程序中设置它,您可以将'process.env.NODE_PATH'作为参数传递给'require()'。 – laggingreflex