【问题标题】:Bower installation errors on Windows, ENOENT, ENOTEMPTYWindows、ENOENT、ENOTEMPTY 上的 Bower 安装错误
【发布时间】:2014-08-30 14:36:46
【问题描述】:

我在 Windows 8 上,以管理员身份运行命令提示符。我运行这个命令:

npm install -g bower

这给了我错误。我无法向 npm-debug.log 提供完整的输出,因为我限制为 30000 个字符。 StackOverflow 抱怨我的帖子太长,而且它似乎包含的代码格式不正确,即使我把它放在pre 中,所以我删除了所有带有“silly”或“verbose”的行,我也切掉除了结尾之外的所有内容,这似乎是有趣的部分。

npm-debug.log 包含以下内容:

3850 info install bower-endpoint-parser@0.2.2
3851 info postinstall bower-logger@0.2.2
3864 info install lru-cache@2.5.0
3865 http 304 https://registry.npmjs.org/lodash.debounce
3868 info postinstall bower-endpoint-parser@0.2.2
3870 info postinstall lru-cache@2.5.0
3872 info preinstall bower-config@0.5.2
3877 info preinstall nopt@3.0.1
3878 error error rolling back Error: ENOTEMPTY, rmdir 'C:\Users\Mikal\AppData\Roaming\npm\node_modules\bower\node_modules\q'
3878 error error rolling back  bower@1.3.7 { [Error: ENOTEMPTY, rmdir 'C:\Users\Mikal\AppData\Roaming\npm\node_modules\bower\node_modules\q']
3878 error error rolling back   errno: 53,
3878 error error rolling back   code: 'ENOTEMPTY',
3878 error error rolling back   path: 'C:\\Users\\Mikal\\AppData\\Roaming\\npm\\node_modules\\bower\\node_modules\\q' }
3879 error Error: No compatible version found: chalk@'^0.4.0'
3879 error Valid install targets:
3879 error ["0.1.0","0.1.1","0.2.0","0.2.1","0.3.0","0.4.0","0.5.0"]
3879 error     at installTargetsError (C:\Program Files\nodejs\node_modules\npm\lib\cache.js:719:10)
3879 error     at C:\Program Files\nodejs\node_modules\npm\lib\cache.js:641:10
3879 error     at RegClient.get_ (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\get.js:101:14)
3879 error     at RegClient.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\get.js:37:12)
3879 error     at fs.js:266:14
3879 error     at Object.oncomplete (fs.js:107:15)
3880 error If you need help, you may report this log at:
3880 error     <http://github.com/isaacs/npm/issues>
3880 error or email it to:
3880 error     <npm-@googlegroups.com>
3881 error System Windows_NT 6.2.9200
3882 error command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "bower"
3883 error cwd C:\nodeapps
3884 error node -v v0.10.11
3885 error npm -v 1.2.30

据我所知,这是一个错误,因为C:\Users\Mikal\AppData\Roaming\npm\node_modules\bower\node_modules\q 目录不为空,因此无法删除。但是,当我在 Windows 资源管理器中导航到那里时,\nodemodules\ 内没有 q 目录。

如果我转到命令提示符并尽可能向上滚动,我会发现以下内容:

ream\lib\writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm http GET https://registry.npmjs.org/optimist
npm ERR! Error: ENOENT, lstat 'C:\Users\Mikal\AppData\Roaming\npm\node_modules\bower\node_modules\chalk\node_modules\strip-ansi\readme.md'
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Windows_NT 6.2.9200
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "bower"
npm ERR! cwd C:\nodeapps
npm ERR! node -v v0.10.11
npm ERR! npm -v 1.2.30
npm ERR! path C:\Users\Mikal\AppData\Roaming\npm\node_modules\bower\node_modules\chalk\node_modules\strip-ansi\readme.md
npm ERR! fstream_path C:\Users\Mikal\AppData\Roaming\npm\node_modules\bower\node_modules\chalk\node_modules\strip-ansi\readme.md
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack C:\Program Files\nodejs\node_modules\npm\node_modules\fstream\lib\writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat 'C:\Users\Mikal\AppData\Roaming\npm\node_modules\bower\node_modules\decompress-zip\lib\structures.js'
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Windows_NT 6.2.9200
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "bower"
npm ERR! cwd C:\nodeapps
npm ERR! node -v v0.10.11
npm ERR! npm -v 1.2.30
npm ERR! path C:\Users\Mikal\AppData\Roaming\npm\node_modules\bower\node_modules\decompress-zip\lib\structures.js
npm ERR! fstream_path C:\Users\Mikal\AppData\Roaming\npm\node_modules\bower\node_modules\decompress-zip\lib\structures.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack C:\Program Files\nodejs\node_modules\npm\node_modules\fstream\lib\writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat 'C:\Users\Mikal\AppData\Roaming\npm\node_modules\bower\node_modules\inquirer\lib\prompts\input.js'
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Windows_NT 6.2.9200
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "bower"
npm ERR! cwd C:\nodeapps
npm ERR! node -v v0.10.11
npm ERR! npm -v 1.2.30
npm ERR! path C:\Users\Mikal\AppData\Roaming\npm\node_modules\bower\node_modules\inquirer\lib\prompts\input.js
npm ERR! fstream_path C:\Users\Mikal\AppData\Roaming\npm\node_modules\bower\node_modules\inquirer\lib\prompts\input.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack C:\Program Files\nodejs\node_modules\npm\node_modules\fstream\lib\writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat 'C:\Users\Mikal\AppData\Roaming\npm\node_modules\bower\node_modules\fstream\lib\file-reader.js'
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Windows_NT 6.2.9200
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "bower"
npm ERR! cwd C:\nodeapps
npm ERR! node -v v0.10.11
npm ERR! npm -v 1.2.30
npm ERR! path C:\Users\Mikal\AppData\Roaming\npm\node_modules\bower\node_modules\fstream\lib\file-reader.js
npm ERR! fstream_path C:\Users\Mikal\AppData\Roaming\npm\node_modules\bower\node_modules\fstream\lib\file-reader.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack C:\Program Files\nodejs\node_modules\npm\node_modules\fstream\lib\writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm http GET https://registry.npmjs.org/osenv/0.0.3
npm ERR! Error: ENOENT, lstat 'C:\Users\Mikal\AppData\Roaming\npm\node_modules\bower\node_modules\semver\semver.js'
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Windows_NT 6.2.9200
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "bower"
npm ERR! cwd C:\nodeapps
npm ERR! node -v v0.10.11
npm ERR! npm -v 1.2.30
npm ERR! path C:\Users\Mikal\AppData\Roaming\npm\node_modules\bower\node_modules\semver\semver.js
npm ERR! fstream_path C:\Users\Mikal\AppData\Roaming\npm\node_modules\bower\node_modules\semver\semver.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack C:\Program Files\nodejs\node_modules\npm\node_modules\fstream\lib\writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm http 304 https://registry.npmjs.org/osenv/0.0.3
npm http 200 https://registry.npmjs.org/optimist
npm ERR! Error: ENOENT, lstat 'C:\Users\Mikal\AppData\Roaming\npm\node_modules\bower\node_modules\q\q.js'
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Windows_NT 6.2.9200
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "bower"
npm ERR! cwd C:\nodeapps
npm ERR! node -v v0.10.11
npm ERR! npm -v 1.2.30
npm ERR! path C:\Users\Mikal\AppData\Roaming\npm\node_modules\bower\node_modules\q\q.js
npm ERR! fstream_path C:\Users\Mikal\AppData\Roaming\npm\node_modules\bower\node_modules\q\q.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack C:\Program Files\nodejs\node_modules\npm\node_modules\fstream\lib\writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat 'C:\Users\Mikal\AppData\Roaming\npm\node_modules\bower\node_modules\request\request.js'
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Windows_NT 6.2.9200
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "bower"
npm ERR! cwd C:\nodeapps
npm ERR! node -v v0.10.11
npm ERR! npm -v 1.2.30
npm ERR! path C:\Users\Mikal\AppData\Roaming\npm\node_modules\bower\node_modules\request\request.js
npm ERR! fstream_path C:\Users\Mikal\AppData\Roaming\npm\node_modules\bower\node_modules\request\request.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack C:\Program Files\nodejs\node_modules\npm\node_modules\fstream\lib\writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat 'C:\Users\Mikal\AppData\Roaming\npm\node_modules\bower\node_modules\handlebars\dist\handlebars.amd.js'
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Windows_NT 6.2.9200
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "bower"
npm ERR! cwd C:\nodeapps
npm ERR! node -v v0.10.11
npm ERR! npm -v 1.2.30
npm ERR! path C:\Users\Mikal\AppData\Roaming\npm\node_modules\bower\node_modules\handlebars\dist\handlebars.amd.js
npm ERR! fstream_path C:\Users\Mikal\AppData\Roaming\npm\node_modules\bower\node_modules\handlebars\dist\handlebars.amd.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack C:\Program Files\nodejs\node_modules\npm\node_modules\fstream\lib\writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)

编辑:

开始自己动手,我注意到ENOENT, lstat 行中提到的文件夹丢失了。所以我尝试安装它们。 Chalk 无法安装:

C:\nodeapps>npm install -g chalk
npm http GET https://registry.npmjs.org/chalk
npm http 200 https://registry.npmjs.org/chalk
npm http GET https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz
npm http 200 https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz
npm http GET https://registry.npmjs.org/escape-string-regexp
npm http GET https://registry.npmjs.org/has-ansi
npm http GET https://registry.npmjs.org/supports-color
npm http GET https://registry.npmjs.org/ansi-styles
npm http GET https://registry.npmjs.org/strip-ansi
npm http 200 https://registry.npmjs.org/ansi-styles
npm http 200 https://registry.npmjs.org/strip-ansi
npm ERR! Error: No compatible version found: strip-ansi@'^0.3.0'
npm ERR! Valid install targets:
npm ERR! ["0.1.0","0.1.1","0.2.0","0.2.1","0.2.2","0.3.0"]
npm ERR!     at installTargetsError (C:\Program Files\nodejs\node_modules\npm\lib\cache.js:719:10)
npm ERR!     at C:\Program Files\nodejs\node_modules\npm\lib\cache.js:641:10
npm ERR!     at saved (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\get.js:138:7)
npm ERR!     at Object.oncomplete (fs.js:107:15)
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Windows_NT 6.2.9200
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "chalk"
npm ERR! cwd C:\nodeapps
npm ERR! node -v v0.10.11
npm ERR! npm -v 1.2.30
npm http 200 https://registry.npmjs.org/escape-string-regexp
npm http 200 https://registry.npmjs.org/has-ansi
npm http 200 https://registry.npmjs.org/supports-color
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     C:\nodeapps\npm-debug.log
npm ERR! not ok code 0

Decompress-zipInquirerfstreamsemverrequesthandlebars 将安装,并带有一些警告。 安装这些后重试chalk 不起作用。从 "valid install targets" 错误行和 Github with Macports 上类似问题的一些 cmets 中,我得到了我应该将 npm 回滚到版本 0.3.0 的想法。

不知道该怎么做。 https://github.com/npm/npm/issues/5470 推荐了npm cache clean,所以我这样做了,然后尝试再次安装粉笔,这次给了我

npm ERR! Error: No compatible version found: ansi-styles@'^1.1.0'
npm ERR! Valid install targets:
npm ERR! ["0.1.0","0.1.1","0.1.2","0.2.0","1.0.0","1.1.0"]
npm ERR!     at installTargetsError (C:\Program Files\nodejs\node_modules\npm\lib\cache.js:719:10)
npm ERR!     at C:\Program Files\nodejs\node_modules\npm\lib\cache.js:641:10
npm ERR!     at saved (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\get.js:138:7)
npm ERR!     at Object.oncomplete (fs.js:107:15)
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Windows_NT 6.2.9200
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "chalk"
npm ERR! cwd C:\nodeapps
npm ERR! node -v v0.10.11
npm ERR! npm -v 1.2.30
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     C:\nodeapps\npm-debug.log
npm ERR! not ok code 0

这表明我应该回滚到版本“1.1.0” - 不幸的是我不知道该怎么做。

在之前链接的 GitHub 问题上,该人只能通过重新安装 node.js 来使其正常工作。因此,除非有人很快提出另一个解决方案,否则我认为我会这样做。

【问题讨论】:

    标签: windows node.js npm bower


    【解决方案1】:

    我刚刚在我的 Windows 7 机器上安装 bower 时遇到了同样的问题。我可以保证重新安装 node.js 解决了这个问题!

    【讨论】:

    • 我遇到了同样的问题,重新安装 nodejs 确实有帮助。不知道为什么,但确实如此。
    • 我认为这与一些未记录的兼容性问题有关
    【解决方案2】:

    我在 Windows 7 上遇到了类似的问题并得到了修复:

    npm rm -g bower
    npm cache clean
    npm i -g bower
    

    【讨论】:

    • 这对我不起作用。将尝试重新安装节点
    【解决方案3】:

    该问题仅存在于 Windows 操作系统上。只有当路径已经存在(以前的安装)并且您正在更新时,它才会存在。

    Nodes npm 包管理器不会在 one 共享供应商文件夹中安装依赖项(例如 Composer),但总是在供应商文件夹 node_modules 子目录中。这导致了一个疯狂的路径深度,如下所示(其中整数替换了原始文件夹名称):

    ./project/node_modules/1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19/20/21/22/23/24/25/26/27/
    

    这不是我目前看到的最大深度。

    Windows 的最大路径长度为 260 个字符。对于 Windows 来说,创建具有疯狂深度的路径是没有问题的。问题是从该路径中删除。要删除此类路径,您必须手动进入并一点一点地重命名文件夹,直到路径总长度

    编辑

    根据@Rarst 的评论,有一个解决方案:使用robocopy。请务必非常尽可能准确地执行以下步骤。如果您不这样做,您可以擦除您的硬盘!。没有暗示保证,以下只是为解决此问题所做的工作的文档,没有推荐,也没有教程或其他任何形式的推荐。

    • node_modules 文件夹中创建了一个空目录(名为_empty
    • 已启动 powershell(也以管理员身份使用 cmd
    • 输入robocopy _empty dir-to-delete /MIR /s
    • 完成

    记住:重复上述步骤时,您可以擦除硬盘。因此,如果您这样做,后果自负,您应该极其谨慎

    【讨论】:

    • 有一些技巧可以删除愚蠢的长路径而无需手动重命名,using robocopy 过去对我来说效果很好。
    【解决方案4】:

    Windows 本身可以处理任意大小的目录,但 Windows 资源管理器和高级 Windows API 的目录深度有限。

    不幸的是,深度模块嵌套是节点的模块加载语义和 npm 解决其他包管理器出现的依赖地狱相结合的结果。 (您想使用两个具有相互不兼容的依赖关系的模块。)

    npm 错误在这里:Provide a way to flatten dependencies to one level to prevent max path issues on windows

    你可以删除一个模块:npm uninstall &lt;modulename&gt;

    或者,如果您想删除目录,请获取 rimraf:

    npm install -g rimraf rimraf <dirname>

    重复数据删除还可能使您的树处于更易于管理的状态:npm dedup

    【讨论】:

      【解决方案5】:

      我在尝试通过 NPM 安装 Bower 时遇到了非常相似的问题。在阅读了大家对 npm 清理全局缓存的建议后:

       npm -g cache clean
      

      这并没有解决我的问题。我意识到 NPM (1.2.18) 版本和一些较新的软件包(dezalgo、q、asap、...)存在严重的兼容性问题。

      最好的部分是我认为我实际上是在使用以下内容更新 NPM:

       npm install -g npm
      

      ...但是我的控制台没有显示错误或警告,所以我认为所有内容都已更新到最新版本。相反,在意识到我对 NPM 的更新没有激活之后,我进行了一些挖掘以找到更新 npm 的最佳方法:

       curl https://www.npmjs.org/install.sh | sh
      

      胜利者,胜利者,鸡肉晚餐! NPM 更新到版本 2.1.7。在 NPM 更新之后,我没有遇到任何问题:

       npm install bower
      

      我认为这将适用于在依赖项方面存在 ENOENT 问题的人。干杯!

      【讨论】:

        【解决方案6】:

        我有同样的错误,npm cache clear/clean 没有解决我的问题。

        从官方网站重新安装而不是aptget解决我的问题。

        https://nodejs.org/下载tar.gz文件

        提取:

        tar -zxvf yourtarfile.tar.gz
        cd intoyournodefolder
        .configure
        make
        sudo make install
        

        然后更新 npm

        sudo npm install npm -g
        

        【讨论】:

          猜你喜欢
          • 2014-03-04
          • 2014-12-10
          • 2016-08-30
          • 2015-05-11
          • 1970-01-01
          • 2021-07-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多