【问题标题】:SailsJS 0.11: ENOENT: no such file or directory, stat '.../node_modules/.bin/cdl'SailsJS 0.11:ENOENT:没有这样的文件或目录,stat '.../node_modules/.bin/cdl'
【发布时间】:2016-08-14 21:24:45
【问题描述】:

有这个SailsJS 应用程序可以在我的办公机器上运行,但不能在本地运行,我想知道为什么?我在本地运行linux。在办公室 Mac。在本地我得到 ​​p>

错误:ENOENT:没有这样的文件或目录,stat '/home/jiewmeng/Dropbox/meclub/node_modules/.bin/cdl' 在错误 (native) 在 Object.fs.statSync (fs.js:849:18) 在 /home/jiewmeng/Dropbox/meclub/node_modules/include-all/index.js:44:12 在 Array.forEach (native) at requireAll (/home/jiewmeng/Dropbox/meclub/node_modules/include-all/index.js:40:9) 在 /home/jiewmeng/Dropbox/meclub/node_modules/include-all/index.js:50:23 在 Array.forEach (native) at requireAll (/home/jiewmeng/Dropbox/meclub/node_modules/include-all/index.js:40:9) 在 buildDictionary (/home/jiewmeng/Dropbox/meclub/node_modules/sails/node_modules/sails-build-dictionary/index.js:68:14) 在 Function.module.exports.optional (/home/jiewmeng/Dropbox/meclub/node_modules/sails/node_modules/sails-build-dictionary/index.js:160:9) 在 Array.async.auto.nodeModulesFolder (/home/jiewmeng/Dropbox/meclub/node_modules/sails/lib/hooks/moduleloader/index.js:379:27) 在 /home/jiewmeng/Dropbox/meclub/node_modules/sails/node_modules/async/lib/async.js:484:38 在每一个 (/home/jiewmeng/Dropbox/meclub/node_modules/sails/node_modules/async/lib/async.js:46:13) 在 Object.async.auto (/home/jiewmeng/Dropbox/meclub/node_modules/sails/node_modules/async/lib/async.js:455:9) 在 Hook.loadUserHooks (/home/jiewmeng/Dropbox/meclub/node_modules/sails/lib/hooks/moduleloader/index.js:363:13) 在 Hook.bound [作为 loadUserHooks] (/home/jiewmeng/Dropbox/meclub/node_modules/sails/node_modules/lodash/dist/lodash.js:729:21) 在 Hook.initialize (/home/jiewmeng/Dropbox/meclub/node_modules/sails/lib/hooks/userhooks/index.js:29:18) 在 Hook.bound [作为初始化] (/home/jiewmeng/Dropbox/meclub/node_modules/sails/node_modules/lodash/dist/lodash.js:729:21) 在 /home/jiewmeng/Dropbox/meclub/node_modules/sails/lib/hooks/index.js:75:14 在 /home/jiewmeng/Dropbox/meclub/node_modules/sails/node_modules/async/lib/async.js:451:17 在 /home/jiewmeng/Dropbox/meclub/node_modules/sails/node_modules/async/lib/async.js:441:17 在每一个 (/home/jiewmeng/Dropbox/meclub/node_modules/sails/node_modules/async/lib/async.js:46:13) 在 Immediate.taskComplete (/home/jiewmeng/Dropbox/meclub/node_modules/sails/node_modules/async/lib/async.js:440:13) 在 processImmediate [as _immediateCallback] (timers.js:374:17)

我正在使用Sails 0.11。服务器实际上可以以Sails 0.12 开头,但有一些重大更改,因此我现在坚持使用0.11。我正在使用Node 4

【问题讨论】:

  • 可能有一些模块是特定于操作系统的,所以如果有一个模块在您运行 *npm install 时编译... * 它可能在其他操作系统中不兼容(因此找不到)

标签: node.js sails.js


【解决方案1】:

我认为您正在使用 dropbox 将办公室笔记本电脑与您的机器同步, 由于某些文件被添加到您的项目中,这不会在一个操作系统中引起问题,但会在另一个操作系统中产生问题。

因此,我建议您应该遵循标准做法来克隆项目

  1. 使用 git 或 bitbucket 克隆项目。
  2. 安装依赖 => npm install

不要使用 Dropbox 进行项目同步。使用版本控制系统克隆/拉取代码,并安装所有依赖项

因为node-gyp 会针对 OS 为 Node.js 编译本机附加模块

希望在此之后它应该可以正常工作。

如果您不想使用 VCS,则可以按照以下步骤操作:

 # cd /home/jiewmeng/Dropbox/meclub
 # sudo rm -rf node_modules
 # rm -rf ~/.npm
 # npm cache clear
 # npm install

这就是你需要做的。

【讨论】:

  • 对我来说,我尝试了很多次rm -rf node_modules/*。 Dropbox 不同步 node_modules 文件夹。但对我来说关键是我必须以某种方式执行rm -rf /node_modules/.npm,它不会从第一个rm 命令中删除。也许隐藏文件夹会保留
  • @JiewMeng 是的,因为 .npm 是一个文件夹,要删除一个文件夹,您需要使用它的删除力,它不能仅与 rm 一起使用。
【解决方案2】:

您不必删除整个 node_modules 目录。只需运行npm rebuild,如果模块与您当前的架构不匹配,它将重新构建模块。

【讨论】:

    【解决方案3】:

    如果您要迁移到新机器,则需要重建您的 node_modules。你可以这样做:

    cd /home/jiewmeng/Dropbox/meclub
    rm -rf node_modules
    npm install
    

    之所以需要这样做是因为.bin 文件夹中已满是symlinks。这可能会导致 Dropbox 出现问题。此外,.bin 文件夹中的资源有时是本地编译的。在不重新编译的情况下从 Ubuntu 迁移到 Mac OSX 将成为许多组件在运行时的问题。

    就像使用 VCS 一样,我建议您根本不要同步 node_modules 文件夹。这不应该在机器之间共享。您可以在每台计算机上使用 NPM 管理这些依赖项。

    【讨论】:

      【解决方案4】:
      1. 确保您从正确的目录运行 Sails,使用 sails lift 或任何您使用的方式
      2. 发送npm install 以确保所有模块都已安装
      3. 手动检查 package.json 中的所有模块是否在您的 node_modules 文件夹中可用
      4. 确保两个节点的版本相同(即使不是 - 在大多数情况下也不应该成为问题)
      5. 在最坏的情况下尝试重新安装sails 和node。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-06-03
        • 2021-03-05
        • 2020-12-05
        • 1970-01-01
        • 2021-06-10
        • 2018-10-26
        • 2023-01-02
        • 2017-01-24
        相关资源
        最近更新 更多