Ошибка во время сборки проекта 'npm run build' при использовании в проекте внешней библиотеки

ситуация следующая:

  1. есть проект построенный на node.js.
  2. в нем необходимо реализовать взаимодействие с сторонним сервисом собирающем инфу о пользователях.
  3. в head страницы я разместил скрипт сервиса который асинхронно подгружает библиотеку этого сервиса.
  4. теперь на странице регистрации, при регистрации мне необходимо выполнить функцию из библиотеки этого сервиса, чтобы фиксировалась регистрация.

Проблема в том что на момент выполнения npm run build, скрипт в head не отработал и библиотека не подгрузилась, соответственно и функция которая прописанная в скрипте регистрации еще не обьявлена.

В итоге npm об этом и пишет

Creating an optimized production build...
Failed to compile.

./src/components/Registration/Registration.jsx
  Line 525:  'carrotquest' is not defined  no-undef

Search for the keywords to learn more about each error.


npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] build: `REACT_APP_STAGE=preprod node scripts/build.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/alex/.npm/_logs/2020-10-13T11_26_39_161Z-debug.log

Уже 3 дня мучаюсь, подскажите как можно решить такую проблему. Возможно ли как-то прописать эту функцию чтобы её игнорил npm ? Я пробовал скачать полностью их библиотеку (файл) и подключить вот так

let carrotLib = require('./carrot-lib');

И обратится к ней вот так, но это не сработало(

carrotLib.carrotquest.auth(user_id, hash);

Ответы (1 шт):

Автор решения: nörbörnën

Похоже на то, что сборке проекта препятствует проверка линтером. Если у вас eslint то попробуйте добавить вашу "глобальную" функцию в соотвествующий раздел настроек линтера:

Если конфигурация в .eslintrc:

"globals": {
    "carrotquest": true
}

Если конфигурация в package.json:

"eslintConfig": {
    "globals": {
        "carrotquest": true
    }
}

на момент выполнения npm run build, скрипт в head не отработал и библиотека не подгрузилась

Ошибка считать, что в момент сборки проекта подключаются внешние библиотеки, - только локальные.

→ Ссылка