Как развернуть надстройку outlook, созданную с помощью Yo Office, на наш собственный сервер Ubuntu? - PullRequest
0 голосов
/ 29 марта 2019

После размещения приложения на онлайн-сервере React больше не распознается. Локально все отлично работает.

Просто чтобы быть уверенным, что это не моя вина, я снова начал с нуля, выполнив следующие шаги.

Шаг 1 - Создать приложение:
Мкдир Реактест
cd реагировать
ваш офис
выберите проект надстройки Office с помощью инфраструктуры React
назовите это ReactTest
выберите outlook в качестве офисного клиента
пусть это делает, это работает
cd ReactTest
исправление аудита npm
настроить манифест, заполнив SupportUrl DefaultValue

Шаг 2 - протестировать приложение
npm start
Надстройка с боковой загрузкой путем загрузки манифеста в Outlook
нажмите кнопку
Если все хорошо, вы должны увидеть экран приветствия.

Шаг 3 - Сборка
npm run build

Шаг 4 - Загрузка и проверка
загрузить содержимое папки dist в место на онлайн-сервере
замените https://localhost:3000 в манифесте местоположением на веб-сервере
Надстройка боковой загрузки, загрузив обновленный манифест в Outlook
нажмите кнопку
в боковой панели ничего не отображается

Шаг 5 - проверка в отладчике Outlook
щелкните правой кнопкой мыши на боковой панели и покажите инспектор элементов
проверьте консоль на наличие ошибки
он показывает 3 ошибки , самая большая из которых, кажется, что React не известна и вызывает надстройку не работает ?

[Error] ReferenceError: Can't find variable: React
    react (vendor.297c97ec99bb1c2af14d.js:16:1502)
    o (vendor.297c97ec99bb1c2af14d.js:1:159)
    (anonieme functie) (vendor.297c97ec99bb1c2af14d.js:16:1336)
    o (vendor.297c97ec99bb1c2af14d.js:1:159)
    (anonieme functie) (vendor.297c97ec99bb1c2af14d.js:1:949)
    Globale code (vendor.297c97ec99bb1c2af14d.js:1:957)

[Error] ReferenceError: Can't find variable: React
    react (app.297c97ec99bb1c2af14d.js:23:8683)
    o (app.297c97ec99bb1c2af14d.js:1:159)
    ./index.tsx (app.297c97ec99bb1c2af14d.js:23:7746)
    o (app.297c97ec99bb1c2af14d.js:1:159)
    (anonieme functie) (app.297c97ec99bb1c2af14d.js:23:8631)
    o (app.297c97ec99bb1c2af14d.js:1:159)
    (anonieme functie) (app.297c97ec99bb1c2af14d.js:1:949)
    Globale code (app.297c97ec99bb1c2af14d.js:1:957)

[Error] Error: Office.js has not fully loaded. Your app must call "Office.onReady()" as part of it's loading sequence (or set the "Office.initialize" function). If your app has this functionality, try reloading this page.
    (anonieme functie) (office.debug.js:1643:263)
    validateFunction (office.debug.js:287)

Это зависимости в package.json (используются в производстве, если я правильно понимаю)

"dependencies": {
    "@microsoft/office-js-helpers": "^1.0.2",
    "core-js": "^2.6.1",
    "office-ui-fabric-react": "^6.138.1",
    "react": "^16.8.1",
    "react-dom": "^16.8.1"
},

реагируют и реагируют явно присутствуют

Я ожидаю, что приложение будет запущено на нашем веб-сервере, и эта реакция доступна и работает.

1 Ответ

0 голосов
/ 01 апреля 2019

Это связано с тем, что конфигурация веб-пакета для производственной сборки помечает React и ReactDOM как внешние. Вы можете либо загрузить их явно с помощью ссылок на скрипты на странице HTML, либо перейти в /config/webpack.prod.js и удалить раздел externals:

  externals: {
        'react': 'React',
        'react-dom': 'ReactDOM'
    },

Выполнение последнего приведет к загрузке Repack в пакет.

...