还是上个install命令问题没有解决

还是上个install命令问题没有解决

本节第6分钟讲的是通过 install 命令调用其他脚手架,但我这边始终无法调用别的脚手架

git 仓库 

https://gitee.com/xiebinyin/xiebenyin-test.git

我这边输入输入命令 xiebenyin-test install 

报错信息与视频不一样

internal/modules/cjs/loader.js:892
  throw err;
  ^

Error: Cannot find module 'C:\Users\xiebenyin\Desktop\mk-lg\xiebenyin3-test\vue create'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:889:15)
    at Function.Module._load (internal/modules/cjs/loader.js:745:27)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:76:12)
    at internal/main/run_main_module.js:17:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}


核心代码

program
  .command('install [name]', 'install package', {
    executableFile: 'vue create', // 这里与视频中内容不一样!!!
  })
  .alias('i')

我把插件的版本调到和视频一样的版本还是无法解决问题

麻烦老师这边帮我看看,谢谢

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,这边已经使用window电脑做测试的时候会出现上面的问题,Mac 是没有问题的,这个是模块的系统兼容性问题,你可以在github上给他们提Issues,这个效果不会影响脚手架的执行,你可以先跳过,等官网修复之后在使用。https://img1.sycdn.imooc.com//climg/628edecd09a1301e15781502.jpg

  • 慕粉3946981 提问者 #1

    好吧,多谢解惑

    2022-05-26 13:04:53
  • 我和他遇到同样的问题, executableFile;'imooc-cli', 报错imooc-cli 不存在, 串联运行下一个脚手架执行不成功, 和电脑没关系吧, 我是Mac了也报错一样的


    2022-10-12 22:32:59
  • 慕粉3946981 提问者 回复 keep7677850 #3

    根据我的经验,这个应该不是bug。

    问题原因:

    • 报错信息中提示说没有找到该模块,只需要在该文件中新增一个同名js文件就可以阻止这个报错,并且会运行该js文件


    解决调用三方脚手架问题:

    1.  将 program.option('-d, --debug', '是否开启调用模式', false) 注释掉 (因为这个选项后面会和三方脚手架中传递参数发生冲突)

    2. program.command第三个参数对象中 executableFile 的值需要是一个运行文件的路径,可以通过 require.resolve('pkgName')赋值(一定要在pkgName这个包的package.json中指定main字段,因为commander加载三方脚手架内部通过require来运行的)

    3. 如果在调用 program.command没有传递第三个对象作为参数会发生什么?commander内部会把文件名和第一个参数中指定的命令名称合并,在当前目录下查询有没有该文件,比如文件名是 index.js,program.command('cli-dev [name]')等于执行当前目录下 index-cli-dev 文件并将 name 参数(如果终端中传递了该参数)传递过去运行文件。

    2023-04-08 17:20:40
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师