thg*_*gie 53 javascript macos require node.js
这是项目结构:
/
app.js
package.json
/node_modules
/app
config.json
/frontend
assets and html tpls
/modules
couch.js
raeume.js
users.js
Run Code Online (Sandbox Code Playgroud)
我需要来自app.js的config.json,raeume.js和users.js,一切正常.
var config = require('./app/config');
var raeume = require('./app/modules/raeume');
var users = require('./app/modules/users');
Run Code Online (Sandbox Code Playgroud)
然后我要求user.js中的config.json和couch.js以同样的方式,它将找不到任何东西.
var couch = require('./app/modules/couch');
var config = require('./app/config');
Run Code Online (Sandbox Code Playgroud)
我想它应该找到它.经过一些研究,我看到了各种各样的问题,包括如何编译节点.因此包括:我使用节点v0.10.7在osx 10.8上工作.
Alb*_*gni 109
该路径是相对于您正在require
处理文件的目录,所以它应该是这样的:
var couch = require('./couch');
var config = require('../config');
Run Code Online (Sandbox Code Playgroud)
如果你写的话,有点澄清
var couch = require('./couch');
Run Code Online (Sandbox Code Playgroud)
require
如果你写的话,你正在尝试驻留在当前目录中的榻榻米模块
var couch = require('couch');
Run Code Online (Sandbox Code Playgroud)
你正在尝试require
通过安装的沙发模块npm
.
当前接受的答案是正确的并正确回答了问题。
尽管与原始问题没有直接关系,但我想为所有Cannot find module
在指定了正确的相对路径的情况下收到本地文件错误的人添加另一点。
couch.js
假设当前目录中存在同名文件,
在不区分大小写的文件系统(如 Windows 上的 NTFS)上,这两行都可以工作 -
var couch = require('./couch');
var couch = require('./Couch');
Run Code Online (Sandbox Code Playgroud)
但是,在区分大小写的文件系统(如 Linux 上的 ext4)上,require('./couch')
可以工作,但require('./Couch')
不能。
NodeJS 文档中有一个页面与此相关。
我希望这可以帮助那些完美工作的代码在从 Windows/Mac 迁移到 Linux 后停止工作的人。
归档时间: |
|
查看次数: |
63433 次 |
最近记录: |