2016-10-23 3 views
1

Я хочу развернуть мое приложение для производства. Я не знаю, что делать после сборки моего пакета с помощью webpack -p. Как обслуживать этот комплект для производства с использованием сервера экспресс-узлов.Развертывание сборки для производства с использованием экспресс-сервера, который я скомпилировал с помощью webpack -p

Мои webpack.config.js файл

var HtmlWebpackPlugin = require('html-webpack-plugin') 
var debug = process.env.NODE_ENV !== "production"; 
var webpack = require("webpack"); 

var HTMLWebpackPluginConfig = new HtmlWebpackPlugin({ 
    template: __dirname + '/app/index.html', 
    filename: 'index.html', 
    inject: 'body' 
}); 

module.exports = { 
    devtool: debug ? "inline-sourcemap" : null, 
    entry: [ 
    './app/index.js' 
    ], 
    output: { 
    path: __dirname + '/dist', 
    publicPath: '/', 
    filename: "index_bundle.js" 
    }, 
    module: { 
    loaders: [ 
     {test: /\.js$/, exclude: /node_modules/, loader: "babel-loader"} 
    ] 
    }, 
    resolve: { 
    extensions: ['', '.js', '.jsx'] 
    }, 
    plugins: debug ? [HTMLWebpackPluginConfig] : [ 
    HTMLWebpackPluginConfig, 
    new webpack.optimize.CommonsChunkPlugin('common.js'), 
    new webpack.optimize.DedupePlugin(), 
    new webpack.optimize.OccurenceOrderPlugin(), 
    new webpack.optimize.UglifyJsPlugin({ mangle: false, sourcemap: false }), 
    new webpack.optimize.AggressiveMergingPlugin() 
    ], 
}; 

Мой package.json файл

{ 
    "name": "my-web", 
    "version": "1.0.0", 
    "description": "Practicing react-website", 
    "main": "index.js", 
    "scripts": { 
    "start": "webpack-dev-server --hot --port 8080 --host 0.0.0.0 --content-base dist/ --history-api-fallback", 
    "prod": "NODE_ENV=production webpack -p", 
    "postinstall": "npm start" 
    }, 
    "dependencies": { 
    "axios": "^0.15.0", 
    "express": "^4.14.0", 
    "radium": "^0.18.1", 
    "react": "^15.3.2", 
    "react-dom": "^15.3.2", 
    "react-router": "^2.8.1" 
    }, 
    "devDependencies": { 
    "babel-core": "^6.17.0", 
    "babel-loader": "^6.2.5", 
    "babel-preset-react": "^6.16.0", 
    "html-webpack-plugin": "^2.22.0", 
    "webpack": "^1.13.2", 
    "webpack-dev-server": "^1.16.1" 
    } 
} 

Примечание: начало NPM работает очень хорошо на локальном хосте. И поэтому я использовал webpack -p для создания пакета в папке ./dist. Нужны шаги отсюда.

Также оценивается предложение о наилучшем способе развертывания.

ответ

0

Вы теперь должны служить содержимое папки DIST с курьерским, вот базовая реализация которого вы можете использовать в качестве примера:

Создайте файл с именем app.js в вашем. папка (в той же папке, расстояние папки в)

app.js

var path = require('path'); 
var express = require('express'); 

var app = express(); 

app.use(express.static(path.join(__dirname, '/dist'))); 

app.get('/*', function(req, res){ 
    res.sendfile("index.html", {root: path.join(__dirname, '/dist')}); 
}); 

app.listen(80, function() { 
    console.log("BePretty Frontend App is running at localhost: 80") 
}); 

Затем запустите узел app.js, если вы получите ошибку EACCES, запустить приложение узла SUDO .js. Это запускает ваши производственные файлы локально на http://localhost.

Если вы хотите развернуть это в другом месте (например, heroku https://devcenter.heroku.com/articles/getting-started-with-nodejs#introduction), вам нужно будет проверить их инструкции.

+0

спасибо ..... для других, ищущих одинаковые шаги ответа, - – Vikas

+0

Отредактирован ответ, не уверен, смогу ли я помочь вам больше –

+0

вы очень помогли ...... я даже развернул на GCP. – Vikas

Смежные вопросы