Чтобы я не делал у меня не получается опубликовать приложение. Работаю в Visual Studio 2017, использовал встроенный шаблон Angular. В режиме отладки все работает просто отлично. Он стоит попытаться опубликовать постоянно выбрасывает следующую ошибку:
выход из команды "node node_modules/webpack/bin/webpack.js --env.prod" с кодом 2.
И отсылает в файл с подробностями:
12.02.2018 11:35:46
System.AggregateException: Произошла одна или несколько ошибок. ---> System.Exception: Сбой публикации из-за ошибок сборки. Дополнительную информацию см. в списке ошибок.
--- Конец трассировки внутреннего стека исключений ---
в System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
в System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
в Microsoft.VisualStudio.Web.Publish.PublishService.VsWebProjectPublish.<>c__DisplayClass40_0.<PublishAsync>b__2()
в System.Threading.Tasks.Task`1.InnerInvoke()
в System.Threading.Tasks.Task.Execute()
--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---
в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
в Microsoft.VisualStudio.ApplicationCapabilities.Publish.ViewModel.ProfileSelectorViewModel.<RunPublishTaskAsync>d__108.MoveNext()
---> (Внутреннее исключение #0) System.Exception: Сбой публикации из-за ошибок сборки. Дополнительную информацию см. в списке ошибок.<---
===================
Я пробовал выполнять команду "node node_modules / webpack / bin / webpack.js -env.prod" но ничего похожего как здесь http://www.programfaqs.com/faq/error-msb3073-the-command-node-node_modules-webpack-bin-webpack-js-env-prod-exited-with-code-2-2/ Но не добился указанных результатов.
Может я не там делал? Я выполнял эту команду в командной строке и администраторе Node.js в папке с файлом sln
F:\Projects\Visual Studio 2017\DiplomService>node node_modules / webpack / bin / webpack.js -env.prod
module.js:540
throw err;
^
Error: Cannot find module 'F:\Projects\Visual Studio 2017\DiplomService\node_modules'
at Function.Module._resolveFilename (module.js:538:15)
at Function.Module._load (module.js:468:25)
at Function.Module.runMain (module.js:684:10)
at startup (bootstrap_node.js:187:16)
at bootstrap_node.js:608:3
И в следующей папке пытался. И в папке до папки с файлом sln. Не понимаю в чем дело
Удалось решить проблему. Оказалось моя вина, просто не доглядел. Надо все делать внимательно. Если вкратце, то надо просто внимательнее смотреть параметры и методы, который вы создаете в компоненте и используете в html коде. Сейчас я просто опишу процесс решения проблемы. Так как изначально я не мог даже посмотреть в чем дело, мне выдавалась следующая ошибка:
F:\Projects\Visual Studio 2017\DiplomService\DiplomService\DiplomService>node node_modules / webpack / bin / webpack.js -env.prod
module.js:540
throw err;
^
Error: Cannot find module 'F:\Projects\Visual Studio 2017\DiplomService\DiplomService\DiplomService\node_modules'
at Function.Module._resolveFilename (module.js:538:15)
at Function.Module._load (module.js:468:25)
at Function.Module.runMain (module.js:684:10)
at startup (bootstrap_node.js:187:16)
at bootstrap_node.js:608:3
Я просто сделал все публичным, как советовалось в этой статье https://www.ryadel.com/en/the-command-node-node_modules-webpack-bin-webpack-js-env-prod-exited-with-code-2-error-fix-angular-node/. Не знаю повлияло ли это как-то на решение проблемы (у меня просто не было подробностей ошибки) но проблема не исчезла. Затем спустя какое-то время я просто случайно увидел, что не правильно выполняю изначальную команду. Я выполнял ее так:
node node_modules / webpack / bin / webpack.js -env.prod
А надо было так:
node node_modules/webpack/bin/webpack.js --env.prod
После этого появились следующие подробности:
F:\Projects\Visual Studio 2017\DiplomService\DiplomService\DiplomService>node node_modules/webpack/bin/webpack.js --env.prod
Hash: 0471e445328457c0eb4265138e0b34db544454b0
Version: webpack 2.5.1
Child
Hash: 0471e445328457c0eb42
Time: 13341ms
Asset Size Chunks Chunk Names
main-client.js 530 kB 0 [emitted] [big] main-client
ERROR in ng:/F:/Projects/Visual Studio 2017/DiplomService/DiplomService/DiplomService/ClientApp/app/components/home/home.component.html (18,24): Expected 1 arguments, but got 0.
ERROR in ng:/F:/Projects/Visual Studio 2017/DiplomService/DiplomService/DiplomService/ClientApp/app/components/home/home.component.html (18,24): Expected 1 arguments, but got 0.
Child
Hash: 65138e0b34db544454b0
Time: 13331ms
Asset Size Chunks Chunk Names
main-server.js 2.47 MB 0 [emitted] [big] main-server
ERROR in ng:/F:/Projects/Visual Studio 2017/DiplomService/DiplomService/DiplomService/ClientApp/app/components/home/home.component.html (18,24): Expected 1 arguments, but got 0.
ERROR in ng:/F:/Projects/Visual Studio 2017/DiplomService/DiplomService/DiplomService/ClientApp/app/components/home/home.component.html (18,24): Expected 1 arguments, but got 0.
Теперь было видно где ошибка. Ну а дальше было просто. У меня был примерно следующая проблемная часть кода:
<form>
<div class="form-group ">
<label for="email">Файл Word:</label>
<input type="file" accept=".docx" class="form-control" (change)="onFileWord($event.target.files)">
</div>
<div class="form-group">
<label for="pwd">Фай настроек JSON:</label>
<input type="file" accept="application/json" class="form-control" (change)="onFileJson($event)">
</div>
<input (click)="editClick()" class="btn btn-success" value="Редактировать"/>
</form>
Я просто закомментировал все места где ссылался на что-нибудь из файла .ts и потихоньку раскомментировал строчки пока не обнаружил виновницу. Ей оказалась вот эта строчка:
<input (click)="editClick()" class="btn btn-success" value="Редактировать"/>
В файле .ts она ссылалась на следующий метод:
editClick(formData: FormData) {...}
Я исправил этот момент так:
editClick() {...}
И это логично, однако не понятно почему при публикации он на такое жалуется, а в отладке игнорирует и все выполняет нормально.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как организовать доступ между двумя формами в C#, не нарушая инкапуляцию?
Помогите сделать циклический алгоритм на C# Console
Есть объект у закрытой библиотеке, на событие которого я подписываюсь, но оно возникает в основном потокеИ поэтому я не могу использовать...
При использование в с# при технологии entity framework подход database first возникает проблема при подключение к objectdatasource модели данных возникает проблема...