2016-09-12 53 views
5

'a bağlanmak için çok yeni bir düğüm ve Heroku'ya dağıtılıyor. Kurduğum temel bir React uygulaması var ve Heroku'ya konuşlandırmaya çalışıyorum. İtti, ama uygulama başarısız. Günlüklere baktığımda sh: 1: webpack: not found hakkında bir şey görüyorum (tam günlük here)Webpack bulunamadı ve Heroku

Neler olup bittiğinden emin değilim, ama paket.json'la bir alakası var mı? Ben onu kullanıyorum marş şablondan şöyle:

{ 
    "name": "express-react-redux-starter", 
    "version": "1.0.0", 
    "description": "Starter for Express, React, Redux, SCSS applications", 
    "scripts": { 
     "dev": "webpack-dev-server --config ./webpack/webpack-dev.config.js --watch --colors", 
     "build": "rm -rf dist && webpack --config ./webpack/webpack-prod.config.js --colors", 
     "start": "PORT=8080 node start ./server.js", 
     "test": "mocha --compilers js:babel-core/register --require ./test/test_helper.js --recursive ./test", 
     "test:watch": "npm run test -- --watch", 
     "lint": "eslint src test webpack" 
    }, 
    "keywords": [ 
     "ExpressJS", 
     "ReactJS", 
     "Redux", 
     "React hot loader", 
     "React Router", 
     "SCSS", 
     "Webpack Devevelopment configuration", 
     "Webpack Production configuration", 
     "Airbnb Eslint", 
     "pm2", 
     "mocha", 
     "chai" 
    ], 
    "repository": { 
     "type": "git", 
     "url": "git+https://github.com/DimitriMikadze/express-react-redux-starter" 
    }, 
    "author": "Dimitri Mikadze", 
    "license": "MIT", 
    "devDependencies": { 
     "autoprefixer": "^6.4.0", 
     "autoprefixer-loader": "^3.2.0", 
     "babel-core": "^6.8.0", 
     "babel-loader": "^6.2.4", 
     "babel-preset-es2015": "^6.6.0", 
     "babel-preset-react": "^6.5.0", 
     "babel-preset-stage-1": "^6.5.0", 
     "chai": "^3.5.0", 
     "chai-jquery": "^2.0.0", 
     "css-loader": "^0.23.1", 
     "eslint": "^2.10.2", 
     "eslint-config-airbnb": "^9.0.1", 
     "eslint-plugin-import": "^1.8.0", 
     "eslint-plugin-jsx-a11y": "^1.2.0", 
     "eslint-plugin-react": "^5.1.1", 
     "extract-text-webpack-plugin": "^1.0.1", 
     "html-webpack-plugin": "^2.16.1", 
     "jquery": "^2.2.3", 
     "jsdom": "^9.0.0", 
     "mocha": "^2.4.5", 
     "node-sass": "^3.7.0", 
     "react-addons-test-utils": "^15.0.2", 
     "react-hot-loader": "^1.3.0", 
     "sass-loader": "^3.2.0", 
     "style-loader": "^0.13.1", 
     "url-loader": "^0.5.7", 
     "webpack-dev-server": "^1.14.1" 
    }, 
    "dependencies": { 
     "classnames": "^2.2.5", 
     "express": "^4.13.4", 
     "lodash": "^4.15.0", 
     "react": "^15.0.2", 
     "react-dom": "^15.0.2", 
     "react-redux": "^4.4.5", 
     "react-router": "^2.4.0", 
     "redux": "^3.5.2", 
     "webpack": "^1.13.0" 
    } 
} 

Bunu dağıtılan almak için yanlış ne yapıyorum? Yerel sunucumda harika çalışıyor. Ama bunu benim için yaşamak için dünyaya nasıl çıkacağını anlayamıyorum. Çok teşekkürler!

cevap

16

Tamam - bunun paket.json 'daki devDependencies vs. Bağımlılıkları ile ilgisi vardır. Ayrıca, Heroku yapılandırmasını NPM_CONFIG_PRODUCTION: false olarak ayarlayarak bunu çözebildim. Thx internet!

+0

NPM_CONFIG_PRODUCTION "devDependencies" dizinden packajes yüklemek için Heroku yardımcı

Sorununuz düzeltmek gerekir bu? Varsayılan olarak heroku bağımlılıkları ve devDependencies'ı kuramaz. Ayrıca webpack dev sunucusu üretim için uygun değildir. – mdcuesta

+0

Sorunumu çözdüğünüz için teşekkür ederiz –

+0

heroku config: set NPM_CONFIG_PRODUCTION = false bu önerinin sözdizimi. –

4

Bu, varsayılan olarak heroku'nun package.json Bağımlılıkları yüklemediğinden, devasa bağımlılıkları kurmak için heroku (npm) (dev/dak) bildirmemiz gerektiği anlamına gelir, bu nedenle bu komutu çalıştırmak 'u çözmelidir "sorun bulunmadı"

. sahte, neden yapardın:

npm install --dev 
+1

Bu daha iyi bir çözümdür. – ivarni

+1

Bir heroku-preinstall betiğinde --only = dev kullanıyordum. Bu yeni/doğru yol gibi görünüyor. Çok teşekkür ederim!!! – SomethingOn

1

ardından komut, heroku config:set NPM_CONFIG_PRODUCTION=false ("bağımlılık" fron değil)