Сборка Autodesk Forge RCDB в Windows 10 завершается ошибкой с ошибками узла - PullRequest
0 голосов
/ 10 мая 2018

При попытке создать Forge Responsive Connected Database для сборки. Я не могу собрать это приложение на своем компьютере с Windows 10. Я не могу успешно запустить «npm install». Я получаю следующие ошибки, перечисленные ниже. В итоге я попытался использовать предварительно настроенный «холст», и он все еще не позволял запускать приложение узла.

https://github.com/Autodesk-Forge/forge-rcdb.nodejs

Я пробовал эти решения безуспешно:

https://github.com/npm/npm/issues/14543

https://github.com/nodejs/node-gyp#on-windows

https://github.com/Automattic/node-canvas/wiki/Installation---Windows

https://github.com/substack/dnode/issues/181

https://github.com/nodejs/node-gyp/issues/629#issuecomment-153196245

https://www.npmjs.com/package/canvas-prebuilt

> canvas@1.6.10 install D:\DEVELOPMENT\Autodesk\forge-rcdb.nodejs3\node_modules\canvas
> node-gyp rebuild


D:\DEVELOPMENT\Autodesk\forge-rcdb.nodejs3\node_modules\canvas>if not defined npm_config_node_gyp (node "C:\Users\steck\AppData\Roaming\nvm\v7.7.1\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "node C:\Users\me\AppData\Roaming\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild )
module.js:472
    throw err;
    ^

Error: Cannot find module 'D:\DEVELOPMENT\Autodesk\forge-rcdb.nodejs3\node_modules\canvas\node C:\Users\me\AppData\Roaming\npm\node_modules\node-gyp\bin\node-gyp.js'
    at Function.Module._resolveFilename (module.js:470:15)
    at Function.Module._load (module.js:418:25)
    at Module.runMain (module.js:605:10)
    at run (bootstrap_node.js:425:7)
    at startup (bootstrap_node.js:146:9)
    at bootstrap_node.js:540:3

1 Ответ

0 голосов
/ 11 мая 2018

Вот полные этапы установки и настройки, которые я тестировал на двух разных 2 разных компьютерах с установленной Windows10.

Pre-установки:

  1. Node.js - используется v.6.x и v8.x
  2. Глобальные пакеты Node.js:

    • NPM-окна-обновления ( ссылка ):
      • Этот инструмент переместится и установит npm в специальную папку Windows %appdata%.
      • Этапы установки:
        • Открыть Powershell как Administrator и выполнить Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force.
        • Установить инструмент по npm install --global --production npm-windows-upgrade npm-windows-upgrade
        • Выполните команду cmd npm-windows-upgrade --npm-version 5.6.0 в Powershell ( примечание. Вы можете выбрать любую версию по вашему желанию, например, 6.0.1 )
    • окна-сборка-инструменты ( ссылка ):
      • Этот инструмент установит инструменты сборки, необходимые для пакета node-gyp.
      • Установка займет некоторое время, чтобы дождаться загрузки и установки инструментов сборки. Если вы можете сначала увидеть сообщение Successfully installed Python 2.7, но вам нужно дождаться появления сообщения Successfully installed Visual Studio Build Tools. .
      • Откройте Powershell как Administrator и установите инструмент с помощью npm install --global --production windows-build-tools
    • узел-мошенник (* +1065 * ссылка ):
      • Этот инструмент требуется для пакета node-canvas во время работы npm install.
      • Откройте Powershell как обычно (скажем, текущий пользователь) и установите инструмент с помощью npm install -g node-gyp
  3. Visual Studio 2017 ( ссылка ):

    • Это может быть необязательным , я просто установил его с функциями VS C ++ в моих случаях.
  4. Шоколадный ( ссылка ):

    • Этот инструмент облегчит вам установку зависимостей для пакета node-canvas в Windows.
    • Открыть Powershell как Administrator и выполнить Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')).
    • После установки Chocolatey установите node-canvas зависимостей с помощью choco install -y python2 gtk-runtime microsoft-build-tools libjpeg-turbo ( Может появиться предупреждение visuallstudiotool-vs2017 installation failed, и вы можете его игнорировать. В моих случаях это не повлияло на результат )
  5. GTK с каирской библиотекой ( ссылка ):

    • Этот инструмент требует зависимости для пакета node-canvas.
    • Этапы установки:
      • Скачать скомпилированный пакет X64 GTK здесь .
      • Распакуйте все содержимое в C:\GTK.
  6. Mongochef ( ссылка ):

    • Этот инструмент сделает вашу жизнь проще для восстановления фиктивной базы данных forge-rcdb.
  7. MongoDB:

    • Вы можете следовать инструкциям здесь , чтобы установить MongoDB на свой компьютер, или использовать MongoDB PaaS mlab .

Основные установки:

  1. Загрузите исходные коды forge-rcdb и распакуйте в любое удобное для вас место. В моих случаях я кладу его на рабочий стол.
  2. Откройте Powershell как обычно (скажем, текущий пользователь) и перейдите в разархивированную папку с исходным кодом. Например, выполните cd Desktop\forge-rcdb-nodejs-master в Powershell.
  3. Запустите cmd npm install в корне папки с исходным кодом. ( Вы можете увидеть сообщение об ошибке при компиляции пакета node-canvas, но одновременно увидите «copied xxx.c», «copied xxx.cpp» и т. Д., Затем вы можете игнорировать ошибки. В моих случаях запускать forge-rcdb не было проблемой. )

Конфигурация:

  1. Откройте config\development.config.js в вашем редакторе и измените значения раздела viewer на:

    viewer: {
          viewer3D: 'https://developer.api.autodesk.com/derivativeservice/v2/viewers/viewer3D.js?v=4.0.1',
          threeJS:  'https://developer.api.autodesk.com/derivativeservice/v2/viewers/three.js?v=4.0.1',
          style:    'https://developer.api.autodesk.com/derivativeservice/v2/viewers/style.css?v=4.0.1'
    }
    
  2. Измените раздел database в config\development.config.js с настройками подключения MongoDB.

  3. Восстановление фиктивных данных базы данных в resources/db/dev или resources/db/prod через Mongochef Функция импорта.

  4. Откройте Powershell как обычно (скажем, текущий пользователь) и установите следующие переменные среды:

    $env:NODE_ENV="development"
    $env:HOT_RELOADING="true"
    $env:FORGE_DEV_CLIENT_ID="YOUR_CLINET_ID"
    $env:FORGE_DEV_CLIENT_SECRET="YOUR_CLINET_SECRET"
    

Запустить проект

  1. Измените текущий каталог Powershell на папку с исходным кодом forge-rcdb и введите npm start

  2. открыть http://localhost:3000 в вашем любимом браузере.

Устранение неисправностей

  1. Возможно, вам не удастся загрузить какие-либо модели в браузере. Если вы хотите проверить функциональность, скопируйте resources\models\prod\robot в resources\models\dev\robot. После этого перейдите к http://localhost:3000/configurator в веб-браузере и щелкните мышью на проекте Kinematics, затем вы увидите модель, загруженную на ваш экран.

  2. Если вы видите ответ http://localhost:3000/api/forge/user, показывающий HTTP EORROR CODE 404 из консоли разработчика браузера, то вам необходимо проверить, является ли CallBack URL вашего Forge App, используемого для размещения forge-rcdb в Forge Dev Protal is http://localhost:3000/api/forge/callback/oauth. ( примечание. Этот конфиг можно изменить в config\development.config.js)

    • После этого вам или вашим пользователям необходимо войти на веб-сайт с учетной записью Autodesk, чтобы получить 3-жетный токен от службы Forge OAuth для загрузки моделей на странице галереи.
  3. Если вы получите пустой массив из ответа http://localhost:3000/api/models/configurator?limit=100&offset=0&search=,, это означает, что в вашей коллекции MongoDB ничего нет configurator.models. Чтобы исправить эту проблему, вы можете импортировать содержимое базы данных resources\db\dev\configurator.models.json в вашу MongoDB через Mongochef . ( примечание. Пожалуйста, обратитесь к шагу 3 раздела конфигурации )

  4. Если вы не можете загрузить ни одну из перечисленных моделей с веб-страниц, это означает, что в вашем resources\models\prod или resources\models\dev, а также в корзине Forge OSS нет загруженных видимых пузырьков. Поэтому, пожалуйста, проверьте значение urn в вашей базе данных, если у вас есть эти модели в этих позициях, упомянутых ранее.

  5. Если вы обнаружили, что основная причина для пункта 3 устранения неполадок заключается в том, что у вас не было моделей, перечисленных в forge-rcdb, это потому, что эти модели являются частными моделями Autodesk или загружены другими пользователями ранее, что не может быть передано общественности, к сожалению. Чтобы устранить эту проблему, вы должны изменить пример данных коллекций MongoDB, упомянутых в шаге 3 раздела конфигурации, на свои собственные модели.

Надеюсь, это поможет.

...