道场1.9:Node.js加载相对路径问题使用Dojo Toolkit用的NodeJS

我有麻烦,当涉及到需要一个相对标准的node.js文件:道场1.9:Node.js加载相对路径问题使用Dojo Toolkit用的NodeJS

我有以下目录

node-stuff 

start-server.js

source

dojo

app-client

app-common

app-server

lib

http-server.js

routes

index.js

server-config.js

server.js

我用start-server.js文件来引导Dojo工具包:

dojoConfig = require('./source/app-server/server-config'); 

require("./source/dojo/dojo.js");

这将加载包含dojoConfig信息的服务器配置文件

module.exports = { 

baseUrl: 'source/',

async: true,

packages: [

{

name: 'dojo',

location: 'dojo'

},

{

name: 'app-server',

location: 'app-server'

},

{

name: 'app-client',

location: 'app-client'

},

{

name: 'app-common',

location: 'app-common'

}

],

deps: [

"source/app-server/server.js"

]

};

在我的HTTP-server.js的文件,我尝试使用以下节点要求:

define([ 

"dojo/node!express", //works OK

"dojo/node!path", //works OK

"app-common/roots", //works OK

"dojo/node!../routes/index"] //this last one has the following error message

错误消息出品

"C:\Program Files\nodejs\node.exe" start-server.js 

module.js:340

throw err;

^

Error: Cannot find module 'source\app-server\routes\index'

at Function.Module._resolveFilename (module.js:338:15)

at Function.Module._load (module.js:280:25)

at Module.require (module.js:364:17)

at require (module.js:380:17)

at source/dojo/node.js:41:15

at Object.load (source/dojo/node.js:46:6)

at injectPlugin (C:\Users\james_000\RubymineProjects\node-stuff\source\dojo\dojo.js:1321:13)

at C:\Users\james_000\RubymineProjects\node-stuff\source\dojo\dojo.js:1136:6

at forEach (C:\Users\james_000\RubymineProjects\node-stuff\source\dojo\dojo.js:93:6)

at resolvePluginLoadQ (C:\Users\james_000\RubymineProjects\node-stuff\source\dojo\dojo.js:1129:4)

我试图获取最新关闭Dojo Github的节点版本。这改变了从

Cannot find module 'source\app-server\routes\index' 

错误行

Cannot find module 'app-server\routes\index' 

这是这里的错误,还是我做错了什么?

我想知道如果问题是道场/节点!始终强制要成为source/app-server/routes/index而不是./source/app-server/routes/index。如果我将source/app-server/routes文件夹放在node_modules文件夹中,那么它工作正常。它似乎不喜欢不在该文件夹内的相对文件路径。

编辑:我测试了上面,它是不正确的。

回答:

这看起来像是在Dojo 1.9.1中修复的https://bugs.dojotoolkit.org/ticket/16414#comment:16。

编辑:此外,您的baseUrl需要是目录的绝对路径。

以上是 道场1.9:Node.js加载相对路径问题使用Dojo Toolkit用的NodeJS 的全部内容, 来源链接: utcz.com/qa/259423.html

回到顶部