В этой статье я буду использовать два решения, которые я нашел в Интернете, но не совсем соответствовали моим потребностям. В конце этой статьи вы сможете найти полный пример проекта на моем GitHub с использованием этих решений.
Первому следует отдать должное Андресу Рутнику в его статье Создание приложений Angular на Salesforce. Второй - Александру Гаврилову и его статье Развертывание приложения Angular в Salesforce. Хотя решение Andres немного подавляет, в последнем отсутствует функция маршрутизации, поэтому идея здесь заключается в использовании службы маршрутизации. созданный Андресом, и используйте приведенный ниже gulpfile Александра:
Этот gulpfile.js необходимо скопировать в корневую папку проекта в то же место, что и файл angular.json. Если вы будете использовать ресурсы, такие как изображения в своем html-файле, или вызывать удаленное действие из контроллера Salesforce, вам также потребуется скопировать файл salesforce.service.ts, использование которого можно увидеть в статье. выше, или вы также можете проверить мой пример проекта в конце этой статьи.
Также создайте файл .env в корневой папке со следующими переменными:
SF_USERNAME=YOUR_ORG_USERNAME SF_PASSWORD=YOUR_PASSWORD+YOUR_SECURITY_TOKEN DIST_PATH=dist/YOUR_PROJECT_NAME LOGIN_URL=https://test.salesforce.com PAGE_NAME=YOUR_PAGE_NAME RESOURCE_NAME=YOUR_STATIC_RESOURCE_NAME CONTROLLER=YOUR_APEX_CONTROLLER EXTENSIONS=YOUR_EXTENSIONS or blank API_VERSION=YOUR_API_VERSION BASE_HREF=/ DEV_RESOURCES_URL=http://localhost:4200
Необходимо установить следующие зависимости, выполнив команду:
npm install gulp@3 gulp-zip gulp-jsforce-deploy dotenv gulp-rename gulp-replace gulp-file --save-dev
И добавьте эти скрипты в свой файл package.json:
"dev": "ng build && gulp rm && gulp build-dev-package && gulp deploy && ng serve", "prod": "ng build && gulp rm && gulp build-package && gulp deploy"
Почти готово! Если вы выполните команду npm run prod, вы сможете развернуть свою страницу и статические ресурсы в Salesforce, однако функция маршрутизации по-прежнему отсутствует. Давай поработаем над этим! Во-первых, нам нужна услуга, созданная Андресом, вы можете скопировать ее в любое место в каталоге папок вашего приложения:
Теперь вам нужно добавить службу к поставщикам вашего модуля приложения, как показано в строке 20 файла app.module.ts ниже:
Наконец, добавьте сценарий на главную страницу index.html в корневой каталог:
Теперь, если вы снова выполните npm run prod… БУМ! Вы только что развернули в Salesforce приложение angular с маршрутизацией! Небо это предел. Чтобы увидеть полностью работающий проект, вы можете клонировать мой репозиторий:
Огромный PS: у меня были проблемы с отображением моего cat.gif, поэтому я также использовал решение Andres. На самом деле я предлагаю прочитать обе статьи, которые я цитировал здесь. Не стесняйтесь оставлять комментарии или сомнения.