Dojo1.9:Node.js相对路径问题
Dojo 1.9: Node.js relative path issue
当需要一个相对标准的node.js文件时,我在使用NodeJS的Dojo Toolkit时遇到了问题:
我有以下目录
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文件中,我正在尝试使用以下节点require:
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)
我已经尝试过从DojoGithub中获取节点的最新版本。这改变了的错误线
Cannot find module 'source'app-server'routes'index'
至
Cannot find module 'app-server'routes'index'
这是一个bug,还是我做错了什么?
我想知道问题是否在于dojo/node!总是强制路径为source/app-server/routes/index,而不是/源/应用服务器/路由/索引。如果我把source/app-server/routes文件夹放在node_modules文件夹中,那么它工作得很好。它似乎不喜欢不在该文件夹内的相对文件路径。
编辑:我测试了上面的内容,结果不正确。
这看起来像https://bugs.dojotoolkit.org/ticket/16414#comment:16这在Dojo1.9.1中得到了修复。
EDIT:另外,baseUrl
需要是目录的绝对路径。
相关文章:
- 可以用'吗/'在相对路径中
- Angular sqlLite set css url()无法设置相对路径
- jquery移动应用程序无法使用jquryMobile框架JS和css文件的相对路径
- node.js需要相对路径
- 相对路径的计算
- 如何访问节点模块中具有相对路径的文件
- 在JQuery中,'加载'方法'的相对路径在引用项目中的html文件时开始
- Javascript中具有fetch的相对路径
- backbone.js在#断开相对路径之前缺少斜杠
- 相对路径中的角度2 img src
- 带有JS点击相对路径的网页URL链接
- 流星 ES6 模块相对路径
- 在不同浏览器中使用 javascript 的相对路径
- 无法加载具有相对路径的 css/js
- SystemJS 相对路径
- 是否可以要求项目目录外部的模块没有相对路径
- 无法使用 Jade 模板包含相对路径文件
- RequireJS 不遵循设置了 baseUrl 的数据主的相对路径
- 如何使用它的相对路径访问tomcat服务器中的文件夹
- jQuery ajax 相对路径未找到文件