Вы отправляете в Bluemix папку node_modules в своем проекте? Если да, попробуйте удалить его полностью и повторно отправить.
Также,
Просто добавьте строку node_modules в ваш файл .cfignore, чтобы игнорировать каталог node_modules. Сборочный пакет запустит установку узла в контейнере Cloud Foundry. Также я бы порекомендовал вам выполнить cf delete, чтобы удалить его из кеша, а затем снова выполнить cf push.
Источник: см. комментарии к этому вопросу: не удается передать облачное приложение node.js в bluemix
Обновить
Я думаю, что воспроизвел проблему:
2017-01-01T23:12:14.45+0000 [App/0] ERR Error: Cannot find module 'webpack'
2017-01-01T23:12:14.45+0000 [App/0] ERR at Function.Module._resolveFilename (module.js:339:15)
2017-01-01T23:12:14.45+0000 [App/0] ERR at Function.Module._load (module.js:290:25)
2017-01-01T23:12:14.45+0000 [App/0] ERR at Module.require (module.js:367:17)
2017-01-01T23:12:14.45+0000 [App/0] ERR at require (internal/module.js:16:19)
2017-01-01T23:12:14.45+0000 [App/0] ERR at Object.defineProperty.value (/home/vcap/app/dist/server.bundle.js:280:19)
2017-01-01T23:12:14.45+0000 [App/0] ERR at Object.<anonymous> (/home/vcap/app/dist/server.bundle.js:1930:17)
2017-01-01T23:12:14.45+0000 [App/0] ERR at Object.defineProperty.value (/home/vcap/app/dist/server.bundle.js:2074:31)
2017-01-01T23:12:14.45+0000 [App/0] ERR at __webpack_require__ (/home/vcap/app/dist/server.bundle.js:20:30)
2017-01-01T23:12:14.45+0000 [App/0] ERR at /home/vcap/app/dist/server.bundle.js:40:18
2017-01-01T23:12:14.45+0000 [App/0] ERR at Object.<anonymous> (/home/vcap/app/dist/server.bundle.js:43:10)
2017-01-01T23:12:14.45+0000 [App/0] ERR at Module._compile (module.js:413:34)
2017-01-01T23:12:14.45+0000 [App/0] ERR at Object.Module._extensions..js (module.js:422:10)
2017-01-01T23:12:14.45+0000 [App/0] ERR at Module.load (module.js:357:32)
2017-01-01T23:12:14.45+0000 [App/0] ERR at Function.Module._load (module.js:314:12)
2017-01-01T23:12:14.45+0000 [App/0] ERR at Module.require (module.js:367:17)
Проблема с импортом веб-пакета, похоже, связана с файлом dist/server.bundle.js
, который для меня был сгенерирован командой npm run bs
.
Папка dist загружается в Bluemix и, похоже, импортируется при запуске вашего приложения.
Можете ли вы исключить папку dist в .cfignore
и создать ее, когда ваше приложение загружается с помощью cf push
? Я не уверен, добавите ли вы несколько команд в manifest.yml, например.
command: npm <<your_new_build_command>> && npm run start:prod
Однако похоже, что все, что вы делаете в своей новой команде сборки (например, npm run bs:prod
), получает производственные зависимости только при создании папки dist.
Если вы не можете запустить несколько команд из manifest.yml, вам может потребоваться изменить start:prod
, чтобы он также выполнял этап сборки для производственной среды.
Обновление 2
Вы можете попросить пакет сборки узла не кэшировать модули и загружать их каждый раз, когда вы нажимаете, используя NODE_MODULES_CACHE: false
, например.
applications:
- name: ...
buildpack: nodejs_buildpack
memory: 512M
command: ...
env:
NODE_MODULES_CACHE: false
person
Chris Snow
schedule
01.01.2017