2017-02-25 254 views
8

我从https://www.tutorialspoint.com/reactjs/reactjs_jsx.htm这里创建了一个基本阵营应用的Apache Web服务器上的一个阵营应用程序,我想运行基于Apache服务器上的此测试代码,我知道我需要创建一个可分发的构建,但我不能能够弄清楚如何做到这一点,并不能找到明确的指示。如何部署

我已经看到了这个帖子React,js on Apache server,但它没有什么比一些指引

如果一个人可以用一些明确的指针或指令引导我会很感激了。 P.S.我知道如何工作的Apache是​​一个PHP开发人员

回答

9

最终能够弄明白,我只是希望它会帮助我这样的人。 以下是网络包配置文件应如何看起来像 检查指定的dist dir和输出文件。我缺少指定dist目录

const webpack = require('webpack'); 
const path = require('path'); 
var config = { 
entry: './main.js', 

output: { 
    path:path.join(__dirname, '/dist'), 
    filename: 'index.js', 
}, 

devServer: { 
    inline: true, 
    port: 8080 
}, 
resolveLoader: { 
    modules: [path.join(__dirname, 'node_modules')] 
}, 
module: { 
    loaders: [ 
    { 
     test: /\.jsx?$/, 
     exclude: /node_modules/, 
     loader: 'babel-loader', 

     query: { 
      presets: ['es2015', 'react'] 
     } 
    } 
    ] 
    }, 
    } 

module.exports = config; 

然后包JSON文件

{ 
    "name": "reactapp", 
    "version": "1.0.0", 
    "description": "", 
    "main": "index.js", 
    "scripts": { 
    "start": "webpack --progress", 
    "production": "webpack -p --progress" 
    }, 
    "author": "", 
    "license": "ISC", 
    "dependencies": { 
    "react": "^15.4.2", 
    "react-dom": "^15.4.2", 
    "webpack": "^2.2.1" 
    }, 
    "devDependencies": { 
    "babel-core": "^6.0.20", 
    "babel-loader": "^6.0.1", 
    "babel-preset-es2015": "^6.0.15", 
    "babel-preset-react": "^6.0.15", 
    "babel-preset-stage-0": "^6.0.15", 
    "express": "^4.13.3", 
    "webpack": "^1.9.6", 
    "webpack-devserver": "0.0.6" 
    } 
} 

注意脚本段和生产部门,生产部门是什么让你最终部署索引的路径的方式。 js文件(名称可以是任何东西)

休息FOT的事情将取决于您的代码和组件

执行以下comman的序列DS

NPM安装

这应该让你所有的依赖(节点模块)

然后

NPM运行生产

这应该让你最终的index.js文件将包含所有代码捆绑

一旦完成地方index.html,然后index.js文件下www/html等或Web应用程序根目录,多数民众赞成。

3

由于在帖子中说,作出反应是一个基于浏览器技术。它只在HTML文档中呈现一个视图。

为了能够访问你的“响应应用程序”,您需要:

  1. 捆绑你的包阵营应用
  2. 的Apache指向你的HTML文件在您的服务器,并允许外部访问。

你可能有这里所有的信息:https://httpd.apache.org/docs/trunk/getting-started.html Apache服务器,并在这里让你的JavaScript捆绑https://www.codementor.io/tamizhvendan/beginner-guide-setup-reactjs-environment-npm-babel-6-webpack-du107r9zr

+0

我知道如何让Apache的工作,我是一个PHP开发,我的问题是我坚持打造出分配源,然后设置Apache重定向 –

+1

我明白了。您想要使用模块打包器(例如webpack)来构建JavaScript库。 https://www.codementor.io/tamizhvendan/beginner-guide-setup-reactjs-environment-npm-babel-6-webpack-du107r9zr。我也编辑了我的答案以适合您的需求。 –

1

你可以通过Apache代理运行它,但它会在一个虚拟目录(例如http://mysite.something/myreactapp)来运行。

这似乎有点多余,但如果您的其他页面不是您的React应用程序的一部分(例如PHP页面),您可以通过端口80提供所有服务,并使整个事情成为一个有凝聚力的网站。

1)启动应用程序的反应与NPM运行,或任何命令你使用启动的节点服务器。假设它是在http://127.0.0.1:8080

2.)运行编辑的httpd-proxy.conf并添加:

ProxyRequests On 
ProxyVia On 
<Proxy *> 
    Order deny,allow 
    Allow from all 
    </Proxy> 

ProxyPass /myreactapp http://127.0.0.1:8080/ 
ProxyPassReverse /myreactapp http://127.0.0.1:8080/ 

3.)重启Apache

+3

这是关于生产,我不希望这样的设置我生产 –

1

首先,去你的packages.json文件夹,并把这一行代码匹配你的真实域名地址:

"homepage": "https://yourwebsite.com/afolder/", 

其次,进入终端在项目文件夹,然后键入:

npm run build 

现在你会看到,在项目文件夹结构有一个构建文件夹。

只有你使用filezilla上传到你的服务器。