最近做一个nw简单的桌面小软件,但是在引用外部模块遇到了问题。一般来说nodemodules是第三方模块默认的目录,但是我们一般不在这里面放我们的js模块,一般是在外部创建一个文件夹然后引用这个文件夹。我也是这么做的,var dbOper = require(…/models/dbOper);,我是这样引用的。但是在运行时浏览器会报一个找不到…/models/dbOper这样的错误,可是我把models文件夹放在nodemodules,然后var dbOper = require(models/dbOper);这样引用就完全没有错误,我不知道为什么会这样,想请各位大大们帮下忙。
看的人也不少,为啥没有大大们回复下。。。郁闷下 今天经过我无数次的测试,我终于找到了问题的原因,原来nw相对路径是这样的,一切都是从主目录开始,那么不论我那个外部包在哪里引用,我都需要这样写,./models/dbOper,表示我的主目录下的models文件夹。
require的机制就是先找当前文件夹里的node_modules里的模板,你放进去了当然可以找到,require自定义的模板是可以用相对路径的,上一级目录应该是…/,而不是…/
@dlutwuwei thanks,明天测试下
@dlutwuwei 测试了你的三个点,不过失败了,我又创建了一个模块,同样用我的方法引用,通过。。