在需要相对标准的 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'
这是这里的错误,还是我做错了什么?
我想知道问题是否在于dojo / node!总是将路径强制为 source/app-server/routes/index 而不是 ./source/app-server/routes/index。如果我将 source/app-server/routes 文件夹放在 node_modules 文件夹中,那么它可以正常工作。它似乎不喜欢不在该文件夹内的相对文件路径。
编辑:我测试了上述内容,但它不正确。