错误:无法找到Module' ../ utils / composeObjs'在全球安装发电机模板后

时间:2018-04-07 08:12:21

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

我在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)
搜索后,我发现当全局安装软件包时,需要按预期工作。但是,我已经查看了github上的其他一些生成器,其中一些使用了某种util函数,它们在全局安装时工作正常。

我还怀疑这可能是因为主要模块正在运行yeoman,因为yo stencil告诉yeoman cli使用generator

我需要摆脱这个错误也是niec能够深入了解导致此模块错误的原因。

以下是github问题:https://github.com/AkashGutha/generator-stencil/issues/1

1 个答案:

答案 0 :(得分:1)

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