【问题标题】:node jitsu cannot find local modulesnode jitsu 找不到本地模块
【发布时间】:2012-11-20 05:14:42
【问题描述】:

我有一个应用程序在本地成功运行,所以我知道代码可以运行。但是,当我部署到节点 jitsu 时,我收到一个错误,它找不到本地模块。这是我所拥有的:

文件设置:

/index.js
/config/config.js

index.js

var cfg = require('./config/config.js');

尝试部署节点 jitsu 时出现错误:

Error: Cannot find module './config/config.js'

由于所有这些代码都可以在本地运行,我认为这不是编码问题。我的印象是本地模块不需要包含在 package.json 中,但也许它们适用于节点 jitsu?我阅读了他们的文档,但找不到本地模块的任何特殊内容。

谢谢!

【问题讨论】:

    标签: node.js nodejitsu


    【解决方案1】:

    像这样的本地模块应该可以正常工作.. 只要您在 .gitignore.npmignore 中没有它。

    node_modules 目录中的模块要求您将其添加到 package.json 文件中的 bundledDependencies 数组中。

    检查文件是否包含在部署中的一种简单方法是运行tar -tf $(npm pack)

    【讨论】:

    • .gitignore 中列出了 config.js 文件名。从 .gitignore 中删除它解决了这个问题。谢谢!
    • 如果您想将.npmignore 文件保留在.gitignore 中,您也可以添加它,并专门允许它。 .npmignore 遵循与.gitignore 相同的格式,所以一个简单的!./config/config.js 应该可以工作。
    【解决方案2】:

    我在部署时遇到了完全相同的错误,但由不同的根本原因引起。万一有人遇到同样的问题:

    文件设置:

    /public/Data/TargetData.js
    

    app.js 要求声明:

    var target = require('./public/data/TargetData.js');
    

    我的本​​地 Mac OSX 环境允许 /data//Data/ 的大小写差异 - Nodejitsu 服务器不允许。

    【讨论】:

    • 感谢您发布此内容,为我节省了很多时间。
    猜你喜欢
    • 2012-04-13
    • 1970-01-01
    • 1970-01-01
    • 2022-06-16
    • 1970-01-01
    • 1970-01-01
    • 2017-04-16
    • 2018-08-05
    • 1970-01-01
    相关资源
    最近更新 更多