#typescript #webpack #nativescript #nativescript-angular #sidekick
#typescript #webpack #nativescript #nativescript-angular #sidekick
Вопрос:
Я пытаюсь обновить более старый проект для запуска с последней версией NativeScript. Я выполняю шаги, описанные на странице обновления NativeScript. Насколько я могу судить, этот проект работал с 4.2.0 платформы и 6.1.0 библиотек Angular, а также со следующими зависимостями разработчиков:
"nativescript-dev-typescript": "~0.7.3",
"nativescript-dev-webpack": "0.15.1",
Когда я запускаю команду npm i nativescript-dev-typescript@latest --save-dev
для обновления TS, файл, используемый на следующем шаге: ./node_modules/.bin/ns-upgrade-tsconfig
отсутствует. То же самое происходит с шагом webpack.
Я попытался проигнорировать это и выполнил другие шаги обновления, но при попытке запустить свое приложение я получаю ошибки, которые указывают мне на эту статью, которая оставляет меня в той же ситуации ( ./node_modules/.bin/update-ns-webpack --deps --configs
не запускается, поскольку файл отсутствует)
Я попытался загрузить ZIP-файлы с github и вручную добавить эти скрипты в свою .bin
папку, однако они не запускаются с отсутствующими зависимостями.
Наконец, в качестве последнего средства я отменил все свои изменения в приложении и попытался выполнить сборку, но это не удалось, я полагаю, потому что у меня установлена последняя версия NativeScript. Примечание. Приложение создавалось и работало нормально, прежде чем я попытался выполнить шаги обновления.
Вот текущая ошибка, которую я получаю (после возврата всего и попытки сборки с помощью Sidekick)
[19-04-15 14:46:04.000] Error detected during LiveSync on emulator-5554 for D:DocumentsGitHubgeonasium-app. Error: Command gradlew.bat failed with exit code 1 Error output:
Exception in thread "main" java.io.IOException: Couldn't find 'D:DocumentsGitHubgeonasium-appplatformsandroidbuild-toolssbg-bindings.txt' bindings input file. Most probably there's an error in the JS Parser execution. You can run JS Parser with verbose logging by executing "node 'D:DocumentsGitHubgeonasium-appplatformsandroidbuild-toolsjsparserjs_parser.js' enableErrorLogging".
at org.nativescript.staticbindinggenerator.Generator.generateBindings(Generator.java:126)
at org.nativescript.staticbindinggenerator.Generator.writeBindings(Generator.java:97)
at org.nativescript.staticbindinggenerator.Main.main(Main.java:48)
FAILURE: Build failed with an exception.
В конечном счете я просто хотел бы обновить свое приложение до последней версии NativeScript, TypeScript, Webpack и Angular
ОБНОВЛЕНИЕ Я удалил package-lock.json, tsconfig.json и webpack.js , а также удалены ссылки на nativescript-dev-typescript и nativescript-dev-webpack из package.json. Я очистил папки hooks, node_modules и platforms и снова выполнил шаги обновления.
На этот раз шаг TypeScript прошел успешно, и у меня есть скрипт ns-upgrade-tsconfig в моей папке node_modules /.bin, однако шаг webpack не удался, и его сценарий обновления по-прежнему отсутствует.
Комментарии:
1. попробуйте запустить с
--bundle
2. Я столкнулся с этой проблемой и также обновил свой Android sdk и инструменты сборки. Для сборки для устройств Android требуется Android SDK 28 или более поздней версии
3. Также выполните очистку перед обновлением платформы tns для удаления Android
tns platform remove ios rm -rf node_modules rm -rf platforms rm -rf hooks
4. @Narendra это в Sidekick, я не могу добавить
--bundle
флаг, но я попробую встроить CLI. Я также обновился до последней версии API / SDK в Android Studio,tns update
команда также удаляет платформы, поэтому я сомневаюсь, что удаление ее вручную поможет.
Ответ №1:
В конечном итоге выяснилось, что проблема заключалась в том, что devDependencies вообще не устанавливались. Что заставляет devDependencies не устанавливаться?
NODE_ENV=production
devDependencies не устанавливаются, если для NODE_ENV установлено значение production, потому что, очевидно, мы не устанавливаем зависимости разработки в производственной среде.
Установка переменной среды обратно в рабочее состояние решила проблему.