Почему проект Cordova имеет идентичные копии индекса. js? - PullRequest
0 голосов
/ 06 апреля 2020

Я включил много справочной информации, чтобы помочь вам ответить на этот вопрос, однако вы можете перейти к разделу «Вопросы», чтобы перейти к основной теме.

Справочная информация

I Я новичок в использовании Cordova, и я новичок в существующем проекте Cordova, который я хочу развивать дальше. В результате, когда я смотрю на файлы проекта, я не уверен, какие решения были сделаны предыдущими разработчиками и какие решения сделал Cordova автоматически. Я подозреваю, что Cordova генерирует много файлов, которые не создаются разработчиками приложений, потому что в моем случае имеется более 7900 файлов, включая исходный код и файлы README, а приложение ранее (насколько мне известно) разрабатывалось только одним человеком.

Хотя с этой точки зрения можно задать много вопросов, я хотел бы остановиться на конкретном c вопросе, чтобы он не был слишком широким. Я отметил, что в структуре пути есть множество файлов, называемых index.js.

$ find . -name "index.js"
./platforms/android/app/build/intermediates/assets/debug/www/js/index.js
./platforms/android/app/src/main/assets/www/js/index.js
./platforms/android/cordova/node_modules/balanced-match/index.js
./platforms/android/cordova/node_modules/os-tmpdir/index.js
./platforms/android/cordova/node_modules/concat-map/index.js
./platforms/android/cordova/node_modules/properties-parser/index.js
./platforms/android/cordova/node_modules/elementtree/lib/parsers/index.js
./platforms/android/cordova/node_modules/os-homedir/index.js
./platforms/android/cordova/node_modules/xmlbuilder/lib/index.js
./platforms/android/cordova/node_modules/ansi/examples/beep/index.js
./platforms/android/cordova/node_modules/ansi/examples/progress/index.js
./platforms/android/cordova/node_modules/ansi/examples/clear/index.js
./platforms/android/cordova/node_modules/path-is-absolute/index.js
./platforms/android/cordova/node_modules/brace-expansion/index.js
./platforms/android/cordova/node_modules/sax/test/index.js
./platforms/android/cordova/node_modules/android-versions/index.js
./platforms/android/cordova/node_modules/lodash/index.js
./platforms/android/cordova/node_modules/cordova-registry-mapper/index.js
./www/js/index.js
./node_modules/objectorarray/index.js
./node_modules/es-abstract/index.js
./node_modules/es-abstract/test/index.js
./node_modules/isexe/index.js
./node_modules/balanced-match/index.js
./node_modules/object-keys/index.js
./node_modules/object-keys/test/index.js
./node_modules/has/src/index.js
./node_modules/has/test/index.js
./node_modules/semver/test/index.js
./node_modules/string.prototype.trim/index.js
./node_modules/string.prototype.trim/test/index.js
./node_modules/cordova-plugin-file/src/blackberry10/index.js
./node_modules/jsonfile/index.js
./node_modules/fs-extra/lib/ensure/index.js
./node_modules/fs-extra/lib/remove/index.js
./node_modules/fs-extra/lib/move/index.js
./node_modules/fs-extra/lib/output/index.js
./node_modules/fs-extra/lib/copy-sync/index.js
./node_modules/fs-extra/lib/fs/index.js
./node_modules/fs-extra/lib/empty/index.js
./node_modules/fs-extra/lib/index.js
./node_modules/fs-extra/lib/path-exists/index.js
./node_modules/fs-extra/lib/copy/index.js
./node_modules/fs-extra/lib/move-sync/index.js
./node_modules/fs-extra/lib/json/index.js
./node_modules/fs-extra/lib/mkdirs/index.js
./node_modules/concat-map/index.js
./node_modules/elementtree/lib/parsers/index.js
./node_modules/fs.realpath/index.js
./node_modules/plist/index.js
./node_modules/path-key/index.js
./node_modules/xmlbuilder/lib/index.js
./node_modules/ansi/examples/beep/index.js
./node_modules/ansi/examples/progress/index.js
./node_modules/ansi/examples/clear/index.js
./node_modules/cordova-android/node_modules/balanced-match/index.js
./node_modules/cordova-android/node_modules/os-tmpdir/index.js
./node_modules/cordova-android/node_modules/concat-map/index.js
./node_modules/cordova-android/node_modules/properties-parser/index.js
./node_modules/cordova-android/node_modules/elementtree/lib/parsers/index.js
./node_modules/cordova-android/node_modules/os-homedir/index.js
./node_modules/cordova-android/node_modules/xmlbuilder/lib/index.js
./node_modules/cordova-android/node_modules/ansi/examples/beep/index.js
./node_modules/cordova-android/node_modules/ansi/examples/progress/index.js
./node_modules/cordova-android/node_modules/ansi/examples/clear/index.js
./node_modules/cordova-android/node_modules/path-is-absolute/index.js
./node_modules/cordova-android/node_modules/brace-expansion/index.js
./node_modules/cordova-android/node_modules/sax/test/index.js
./node_modules/cordova-android/node_modules/android-versions/index.js
./node_modules/cordova-android/node_modules/lodash/index.js
./node_modules/cordova-android/node_modules/cordova-registry-mapper/index.js
./node_modules/cordova-android/bin/templates/project/assets/www/js/index.js
./node_modules/for-each/index.js
./node_modules/tape/index.js
./node_modules/path-is-absolute/index.js
./node_modules/brace-expansion/index.js
./node_modules/deep-equal/index.js
./node_modules/has-symbols/index.js
./node_modules/has-symbols/test/index.js
./node_modules/shebang-regex/index.js
./node_modules/is-callable/index.js
./node_modules/through/index.js
./node_modules/through/test/index.js
./node_modules/resumer/index.js
./node_modules/resolve/index.js
./node_modules/resolve/test/resolver/dot_main/index.js
./node_modules/resolve/test/resolver/multirepo/packages/package-b/index.js
./node_modules/resolve/test/resolver/multirepo/packages/package-a/index.js
./node_modules/resolve/test/resolver/quux/foo/index.js
./node_modules/resolve/test/resolver/incorrect_main/index.js
./node_modules/resolve/test/resolver/same_names/foo/index.js
./node_modules/resolve/test/resolver/dot_slash_main/index.js
./node_modules/resolve/test/shadowed_core/node_modules/util/index.js
./node_modules/resolve/test/node_path/x/ccc/index.js
./node_modules/resolve/test/node_path/x/aaa/index.js
./node_modules/resolve/test/node_path/y/ccc/index.js
./node_modules/resolve/test/node_path/y/bbb/index.js
./node_modules/resolve/test/module_dir/ymodules/aaa/index.js
./node_modules/resolve/test/module_dir/xmodules/aaa/index.js
./node_modules/resolve/test/precedence/aaa/index.js
./node_modules/resolve/test/dotdot/abc/index.js
./node_modules/resolve/test/dotdot/index.js
./node_modules/function-bind/index.js
./node_modules/function-bind/test/index.js
./node_modules/shebang-command/index.js
./node_modules/minimist/index.js
./node_modules/cordova-plugin-network-information/src/blackberry10/index.js
./node_modules/cross-spawn/index.js
./node_modules/es-to-primitive/index.js
./node_modules/es-to-primitive/test/index.js
./node_modules/strip-bom/index.js
./node_modules/is-date-object/index.js
./node_modules/path-parse/index.js
./node_modules/is-symbol/index.js
./node_modules/is-symbol/test/index.js
./node_modules/base64-js/index.js
./node_modules/node-version-compare/index.js
./node_modules/node-version-compare/test/index.js
./node_modules/universalify/index.js
./node_modules/define-properties/index.js
./node_modules/define-properties/test/index.js
./node_modules/nice-try/src/index.js
./node_modules/defined/index.js
./node_modules/object-inspect/index.js
./node_modules/is-regex/index.js
./plugins/cordova-plugin-file/src/blackberry10/index.js
./plugins/cordova-plugin-network-information/src/blackberry10/index.js

Было бы чрезвычайно широким и непрактичным задавать вопрос, для чего предназначен каждый из этих файлов с одинаковыми именами, и некоторые могут не отвечать, если их существование зависит от выбора дизайна предыдущих разработчиков этого проекта. К счастью, я могу быть более конкретным c, чем это. У меня есть проблема для отладки, и с помощью указанной c строки поиска, связанной с ошибкой, я смог обнаружить, что указанные c файлы с именем index.js содержат эту строку.

$ grep -ril "<search_string>" .
./platforms/android/app/build/intermediates/assets/debug/www/js/index.js
./platforms/android/app/src/main/assets/www/js/index.js
./www/js/index.js

И чтобы уточнить, хотя эти файлы index.js не были единственными файлами, возвращаемыми grep, они были единственными файлами, которые имели отношение к моей ошибке. Затем я использовал cmp для сравнения этих трех файлов и обнаружил, что они взаимно идентичны (не показано, поскольку cmp по умолчанию печатает только вывод, когда является разницей).

Похоже, некоторая путаница в отношении важности ./www/js/index.js, но, похоже, я предпочел бы отредактировать ./www/js/index.js, а не ./platforms/android/app/src/main/assets/www/js/index.js, потому что ./platforms/android/app/src/main/assets/www/js/index.js автоматически генерируется Cordova согласно этой записи . Это говорит о том, что ./www/js/index.js не генерируется автоматически, хотя остается открытым, будет ли автоматически генерироваться ./platforms/android/app/build/intermediates/assets/debug/www/js/index.js. Учитывая, что build находится в пути ./platforms/android/app/build/intermediates/assets/debug/www/js/index.js, я подозреваю, что этот файл автоматически генерируется при запуске команды cordova build android. Это приводит меня к подозрению, что я должен редактировать ./www/js/index.js, а не два других из этих трех файлов.

Вопросы

Я действительно задаю 3 вопроса в одном посте, однако, так как их область видимости и фон почти идентичны. Я бы предпочел сохранить их вместе для контекста.

  1. Какой из трех index.js должен быть отредактирован при разработке приложения с Cordova?
    ./platforms/android/app/build/intermediates/assets/debug/www/js/index.js
    ./platforms/android/app/src/main/assets/www/js/index.js
    ./www/js/index.js
    
  2. Три файла index.js, упомянутые в вопросе 1, идентичны. Почему существует каждая из этих идентичных копий?

  3. В проекте Cordova есть неидентичные файлы с именем index.js. Почему все они называются одинаково, если они не идентичны по содержанию?

1 Ответ

1 голос
/ 06 апреля 2020

Вам необходимо отредактировать /www/js/index.js.

Два других файла создаются в процессе сборки. Встроенное приложение Cordova будет иметь все содержимое папки www внутри структуры приложения android, поэтому они находятся внутри /platforms/android/app/src/main/

Другие файлы index.js есть, потому что это шаблон Node.js

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...