(发生器 - 聚合物)哟聚合物失效,找不到模块' find-index'

时间:2015-08-03 13:33:51

标签: node.js npm polymer yeoman yeoman-generator

在干净的目录中输入yo polymer后出现完整错误。

module.js:338
    throw err;
          ^
Error: Cannot find module 'find-index'
    at Function.Module._resolveFilename (module.js:336:15)
    at Function.Module._load (module.js:278:25)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (/usr/lib/node_modules/generator-polymer/node_modules/yeoman-generator/node_modules/download/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob2base/index.js:4:17)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)

我刚刚重新安装了与节点相关的所有内容,但这里有版本。

node:              v0.12.7
npm:               2.11.3
yo:                1.4.7
bower:             1.4.1
grunt-cli:         v0.1.13
gulp:              3.9.0
generator-polymer: 1.0.5

请注意,我在安装generator-polymer时会收到警告。

npm WARN deprecated CSSselect@0.4.1: the module is now available as 'css-select'
npm WARN deprecated CSSwhat@0.4.7: the module is now available as 'css-what'

我还尝试手动安装三个有问题的模块,这似乎是成功的。

sudo npm install -g find-index css-select css-what

我没有想法。节点是从nodejs.org下载的源安装的。

编辑: 我还使用n安装sudo npm install -g n来安装节点。我试过没有运气卸载/重新安装node / npm。

EDIT2: yo webapp有效,所以罪魁祸首是(必须是?)发电机聚合物。

3 个答案:

答案 0 :(得分:0)

我看到你正在将它安装到全局模块中。您是否尝试仅为项目安装generator-polymer(它应该修复警告)

您只列出根软件包版本。但问题似乎是依赖性。根据自己的生成器/下载模块引起的堆栈跟踪#/ p>

以下是我所有版本的版本。看一下这个软件包并查看你的版本(我有yeoman-generator@0.18.10和download@3.3.0,工作正常)

generator-polymer@1.1.0 node_modules/generator-polymer
├── ncp@2.0.0
├── chalk@1.1.0 (escape-string-regexp@1.0.3, supports-color@2.0.0, ansi-styles@2.1.0, has-ansi@2.0.0, strip-ansi@3.0.0)
├── lodash@3.10.1
├── validate-element-name@1.0.0 (log-symbols@1.0.2, ncname@1.0.0)
├── rimraf@2.4.2 (glob@5.0.14)
├── yosay@1.0.5 (ansi-regex@1.1.1, ansi-styles@2.1.0, strip-ansi@2.0.1, word-wrap@1.1.0, pad-component@0.0.1, minimist@1.1.3, taketalk@1.0.0, repeating@1.1.3, string-width@1.0.1)
└── yeoman-generator@0.18.10 (read-chunk@1.0.1, dargs@3.0.1, detect-conflict@1.0.0, yeoman-welcome@1.0.1, xdg-basedir@1.0.1, user-home@1.1.1, class-extend@0.1.1, diff@1.4.0, text-table@0.2.0, mime@1.3.4, underscore.string@2.4.0, async@0.9.2, run-async@0.1.0, istextorbinary@1.0.2, debug@2.2.0, nopt@3.0.3, cross-spawn@0.2.9, yeoman-assert@1.0.0, mkdirp@0.5.1, shelljs@0.3.0, cli-table@0.3.1, pretty-bytes@1.0.4, through2@0.6.5, glob@4.5.3, findup-sync@0.2.1, file-utils@0.2.2, dateformat@1.0.11, github-username@1.1.1, lodash@2.4.2, gruntfile-editor@0.2.0, download@3.3.0, mem-fs-editor@1.2.3, sinon@1.15.4, inquirer@0.8.5, yeoman-environment@1.2.7, cheerio@0.18.0)

无论如何,我会尝试将所有deps安装为本地模块。

编辑: 你应该在你的项目中有这个目录

node_modules/generator-polymer/node_modules/yeoman-generator/node_modules/download/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob2base/node_modules/find-index

在树中 glob2base是0.0.12 glob-stram是3.1.18 乙烯基-fs是0.3.13 下载是3.3.0 自耕农发电机是0.18.10

答案 1 :(得分:0)

使用npm -g时出现问题,除非你可以在不使用sudo的情况下访问它(即你有权在安装全局模块的地方读/写等)。

据我所知,它的凉亭是罪魁祸首

解决问题的方法是运行npm config edit,并将前缀值更改为您无需sudo即可访问的内容。这编辑了〜/ .npmrc文件

然后为您全局安装。

答案 2 :(得分:0)

我能够通过删除违规目录

来解决问题

/usr/lib/node_modules/generator-polymer

我不记得是否只是重新安装生成聚合物(sudo npm install -g generator-polymer)完全解决了这个问题(让我知道,我会更新答案)。我最终重新安装了所有内容,以确保减轻任何问题。

环境设置

  1. 安装node.js。按照其站点上的说明为您的操作系统进行安装。
  2. 在系统控制台中输入命令sudo npm install -g yo,安装Yeoman-g全局安装包,这就是需要sudo命令的原因(您的系统可能会有所不同)。
  3. 接下来我们将安装几个Yeoman generators
    1. 使用sudo npm install -g generator-polymer命令安装polymer generator
    2. (可选)使用命令sudo npm install -g generator-element安装polymer element generator。 这将有助于脚手架化自定义Polymer元素。
  4. 开始新项目

    通过开发环境设置,启动项目非常容易。

    mkdir my-project
    cd my-project
    yo polymer
    

    将使用最新版本的聚合物和其他依赖项在my-project目录中设置一个新的聚合物项目。

    测试项目

    Polymer使用gulp流式构建系统。从项目的目录中,只需输入

    即可
    gulp serve
    

    查看我的Polymer 1.0 Notes Google文档。