【问题标题】:Error: Cannot find Module '../utils/composeObjs' after installing generator-stencil globally错误:全局安装生成器模板后找不到模块“../utils/composeObjs”
【发布时间】:2018-04-07 08:12:21
【问题描述】:

我正在为 https://github.com/AkashGutha/generator-stencil 编写一个 stenciljs 生成器

我有一个位于项目根目录的小型实用程序函数。只是一个文件utils/composeObjects.js 导出了一个函数composeObjs。我在生成器的所有子生成器中都使用了这个函数。我在这些地方使用它:

  • app/index.js
  • page/index.js
  • component/index.js

我正在使用npm link 在本地测试我的生成器,然后当我在一个空文件夹中执行yo stencil 时,生成器可以正常工作。

但是,当我 npm publish 它并尝试运行 yo stencil 时,它会引发以下错误。

module.js:538
    throw err;
    ^

Error: Cannot find module '../utils/composeObjects'
    at Function.Module._resolveFilename (module.js:536:15)
    at Function.Module._load (module.js:466:25)
    at Module.require (module.js:579:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/Users/Akash/.npm-global/lib/node_modules/generator-stencil/app/index.js:5:21)
    at Module._compile (module.js:635:30)
    at Object.Module._extensions..js (module.js:646:10)
    at Module.load (module.js:554:32)
    at tryModuleLoad (module.js:497:12)
    at Function.Module._load (module.js:489:3)

经过搜索,我发现在全局安装软件包时 require 无法按预期工作。但是,我查看了 github 上的其他一些生成器,其中一些使用了某种 util 函数,并且在全局安装时它们工作正常。

我也怀疑这可能是因为运行的主模块是主yeoman,因为yo stencil 告诉yeoman cli 使用那个generator

我需要摆脱这个错误,也需要 niec 了解导致这个模块错误的原因。

这里是 github 问题:https://github.com/AkashGutha/generator-stencil/issues/1

【问题讨论】:

    标签: javascript node.js yeoman yeoman-generator stenciljs


    【解决方案1】:

    听起来您的生成器可能正在从 npm 包中删除您的 util 文件。这可能是由 .npmignore 文件或文件/文件夹未包含在您的 package.json files property 中引起的。

    【讨论】:

    • 将对此进行测试并通知您。
    猜你喜欢
    • 2016-05-08
    • 2018-09-16
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 2018-03-08
    • 2017-08-11
    • 2018-03-20
    • 1970-01-01
    相关资源
    最近更新 更多