我在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
答案 0 :(得分:1)
听起来你的生成器可能正在从npm包中删除你的util文件。这可能是由.npmignore
文件引起的,或者文件/文件夹未包含在package.json
files
property中。