У меня есть существующий проект Cordova, для которого я хочу создать диаграмму UML, чтобы улучшить мое понимание проекта и определить, как лучше всего изменить определенные функции c, не изменяя кодовую базу.
Я нашел простой в установке пакет, доступный через npm
под названием wavi
, который я установил с флагом -g
. После установки я запустил его из верхней папки проекта Cordova. Я получаю следующий вывод, который предлагает следующие возможности (которые не должны рассматриваться как взаимоисключающие):
- В проектах Cordova есть что-то, что делает их неприменимыми к
wavi
- Что-то не так с моей
wavi
установкой или настройкой - На самом деле есть ошибки где-то в указанных CSS файлах (возможно, мне нужен какой-то CSS отладчик, если это так)
- Я просмотрел эти файлы, но я не заметил ничего недопустимого с моей точки зрения новичка: CSS
- На самом деле существует набор из одной или нескольких функций где-то в пределах
wavi
, которые не используются как определено (я не совсем уверен, что это значит)
$ wavi /path/to/project ~/project_UML.svg
Processing website: /path/to/project
File contain syntax error: /path/to/project/www/css/style.css
File contain syntax error: /path/to/project/platforms/android/app/src/main/assets/www/css/style.css
File contain syntax error: /path/to/project/platforms/android/app/build/intermediates/merged_assets/debug/mergeDebugAssets/out/www/css/style.css
finished analyzing, now generating graph
7
7
abort(7) at Error
at Ga (/usr/local/lib/node_modules/wavi/es5/lib/viz.js:49:124)
at Fa (/usr/local/lib/node_modules/wavi/es5/lib/viz.js:49:22)
at v (/usr/local/lib/node_modules/wavi/es5/lib/viz.js:1172:101)
at Array.M5 (/usr/local/lib/node_modules/wavi/es5/lib/viz.js:1157:32623)
at OA (/usr/local/lib/node_modules/wavi/es5/lib/viz.js:1145:56755)
at $B (/usr/local/lib/node_modules/wavi/es5/lib/viz.js:1145:84215)
at qf (/usr/local/lib/node_modules/wavi/es5/lib/viz.js:1147:119933)
at Af (/usr/local/lib/node_modules/wavi/es5/lib/viz.js:1147:125753)
at zf (/usr/local/lib/node_modules/wavi/es5/lib/viz.js:1147:124812)
at Array.sf (/usr/local/lib/node_modules/wavi/es5/lib/viz.js:1147:120612)
If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.
(node:16698) V8: /usr/local/lib/node_modules/wavi/es5/lib/viz.js:1151 Invalid asm.js: Function use doesn't match definition
Graph generated: ~/project_UML.svg
Execution time: 7.77
Файл ~/project_UML.svg
после выполнения этой команды существовал, однако пытался открыть в Gimp появилось диалоговое окно, сообщающее, что файл на самом деле пуст. Естественно, что проще всего сделать следующее, увидев это, попробуйте добавить флаг -s ASSERTIONS=1
, который я пробовал.
$ wavi -s ASSERTIONS=1 /path/to/project ~/project_UML.svg
Processing website: /path/to/project/-s
finished analyzing, now generating graph
(node:16853) V8: /usr/local/lib/node_modules/wavi/es5/lib/viz.js:1151 Invalid asm.js: Function use doesn't match definition
Graph generated: /path/to/project/ASSERTIONS=1
Execution time: 0.242
Как видите, wavi
просто интерпретировал эти флаги как аргументы для пути проекта и выходной. Это приводит к некоторой путанице с моей стороны относительно того, почему рекомендуемые флаги не работают должным образом.
Как решить, почему Wavi находит ошибки synatx в этом проекте Cordova, который успешно создается и работает?