问题描述:
mac中 eggjs框架下安装commitizen安装时,执行git cz时提示无法cz-conventional-changelog路径,并找不到该模块。
Could not resolve /Users/picoasis/node_modules/cz-conventional-changelog.
Cannot find module '/Users/picoasis/node_modules/cz-conventional-changelog'
先上问题解决方法:
求助了一位妮娅班班,使用了另外一种安装方法,成功安装的步骤(改动点在 9,方法来自git的文档https://github.com/commitizen/cz-cli)如下:
- mkdir server
- cd server
- npm init egg --type=simple
- npm install
- Sudo npm install -g commitizen//添加sudo
- Sudo npm install -g conventional-changelog//添加sudo
- Sudo npm install -g conventional-changelog-cli//添加sudo//添加sudo
- npm ls -g -depth=0 //检验安装成功
- echo '{ "path": "cz-conventional-changelog" }' > ~/.czrc
- //对代码添加一行console。Log
- Git add .
- Git cz//成功
问题虽然解决了,但是下面的困惑还是没有解开,有时间细读一下https://github.com/commitizen/cz-cli。
问题分析:
猜测是之前在mac里设置了类似 环境变量,路径之类的东西,导致node_modules的路径解析没有到正确的位置,但是没有排查出来,在哪里做修改 ?
困惑点1:多次尝试中,有试着项目本地有安装commitizen,依据node_modules的查询路径,应该会先查找项目内部的node_modules,,但依然未被解析到,是为什么?
困惑点2: 使用ln -s做了软链接,加上之后,依然提示同样的报错。
ln -s /Users/picoasis/node_modules /Users/picoasis/Desktop/code/kaikeba_program/server/node_modules
问题复现步骤:
- mkdir server
- cd server
- npm init egg --type=simple
- npm install
- Sudo npm install -g commitizen//添加sudo
- Sudo npm install -g conventional-changelog//添加sudo
- Sudo npm install -g conventional-changelog-cli//添加sudo//添加sudo
- npm ls -g -depth=0 //检验安装成功
- Sudo commitizen init cz-conventional-changelog --save-dev --save-exact //这一步执行结束后,控制台没有显示cz-conventional-changelog的安装成功信息,但是pakage.json中,已经存在:
- //对代码添加一行console。Log
- Git add .
- Git cz
- //报错 显示
Could not resolve /Users/picoasis/node_modules/cz-conventional-changelog.
Cannot find module '/Users/picoasis/node_modules/cz-conventional-changelog'
图1:控制台显示
图2:pakage.json文件
图3:控制台报错