【问题标题】:(generator-polymer) yo polymer fails, cannot find module 'find-index'(发电机聚合物)哟聚合物失败,找不到模块“查找索引”
【发布时间】:2016-01-22 20:47:10
【问题描述】:

这是在干净目录中输入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

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

编辑: 我还使用sudo npm install -g n 安装了n 来安装节点。我试过卸载/重新安装节点/npm,但没有成功。

编辑2: yo webapp 有效,所以罪魁祸首是(一定是?)生成聚合物。

【问题讨论】:

  • 除了我没有安装 grunt-cli 和我的 generator-polymer 版本是 1.0.4 之外,我的版本与你的所有版本都匹配。我不认为 grunt-cli 很重要,因为生成的聚合物代码使用 gulp。请注意,我在挖掘生成器-polyer 版本时遇到了一些麻烦。我使用以下命令得到它:“npm ls -g --depth=1 2>/dev/null | grep generator”。我建议你调查一下你的生成器聚合物版本。
  • 我的生成器聚合物版本实际上是 1.0.5,如这里的第一行所示,pastebin.com/0K27JDpi。那是重新安装生成器的输出。那里的最后一片叶子也显示 0.18.10,但我会更新帖子。您是否收到有关 CSSselect 和 CSSwhat(上图)的警告?
  • 我最后的评论可能会更清楚。 sudo npm install -g generator-polymer是如何查看原帖的版本,但我第一次没有注意到版本号是1.0.5。
  • 我没有收到任何 CSSwhat 警告的 CSSselect。

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


【解决方案1】:

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

您仅列出根软件包版本。但问题似乎在于依赖关系。根据您的堆栈跟踪,它是由 yeoman-generator / 下载模块引起的

这是我所有的 depes 版本。查看此软件包并检查您的版本(我有 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 yeoman-generator 是 0.18.10

【讨论】:

  • 即使通过npm install yo bower gulp generator-polymer 在本地安装所有内容,我仍然会收到错误消息。 pastebin of full outputgenerator-polymer 现在是 1.1.0 版。仅在本地使用生成器(全局其他所有内容)仍然失败。
【解决方案2】:

使用 npm -g 会出现问题,除非您可以在不使用 sudo 的情况下访问它(即您有权在安装全局模块的位置读取/写入等)。

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

解决问题的方法是运行 npm config edit,并将前缀值更改为您可以在没有 sudo 的情况下访问的值。这将编辑 ~/.npmrc 文件

然后为您全局安装。

【讨论】:

    【解决方案3】:

    我能够通过删除有问题的目录来解决问题,

    /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 元素。

    开始一个新项目

    通过开发环境设置,开始一个项目非常容易。

    mkdir my-project
    cd my-project
    yo polymer
    

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

    测试项目

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

    gulp serve
    

    查看我的Polymer 1.0 Notes Google 文档。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-18
      • 1970-01-01
      • 2018-08-17
      • 2014-07-06
      • 2014-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多