基本的なReactアプリを https://www.tutorialspoint.com/reactjs/reactjs_jsx.htm から作成しました。Apacheベースのサーバーでこのテストコードを実行します。配布可能なビルドを作成する必要があることは知っていますが、その方法を理解できず、明確な指示を見つけることができませんでした。
私はこの投稿を見ました React、js on Apache server しかし、それはいくつかのガイドライン以上のものはありません
明確なポインタまたは指示でガイドできる場合は感謝します。追伸Apacheの仕組みはPHP開発者であることがわかります
最終的にそれを理解することができた、私はそれが私のような誰かを助けることを願っています。
次は、指定されたdist dirと出力ファイルを確認するようにWebパックの構成ファイルがどのように見えるかです。 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"
}
}
スクリプトセクションとプロダクションセクションに注意してください。プロダクションセクションは、最終的なデプロイ可能なindex.jsファイルを提供します(名前は何でもかまいません)
物事はあなたのコードとコンポーネントに依存します
次の一連のコマンドを実行します
npmインストール
これにより、すべての依存関係が取得されます(ノードモジュール)
それから
npm run production
これにより、バンドルされているすべてのコードを含む最終的なindex.js
ファイルが取得されます。
完了したら、index.html
およびindex.js
ファイルをwww/htmlまたはWebアプリのルートディレクトリに配置します。これですべてです。
まず、packages.jsonフォルダーに移動して、実際のドメインアドレスに一致する次のコード行を追加します。
"homepage": "https://yourwebsite.com/afolder/",
次に、プロジェクトフォルダーのターミナルに移動して、次のように入力します。
npm run build
プロジェクトのフォルダー構造にbuildフォルダーがあることがわかります。
Filezillaを使用してサーバーにアップロードするのはその1つだけです。
投稿で述べたように、Reactはブラウザーベースのテクノロジーです。 HTMLドキュメントのビューのみをレンダリングします。
「React App」にアクセスできるようにするには、次のことが必要です。
ここにすべての情報があります: 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
Npmビルドを作成する前に、
1)Reactプロジェクトのルートフォルダーに移動し、package.json
を開きます。
2)「homepage」属性をpackage.json
に追加します
提供したい場合 絶対の 道
"homepage": "http://hostName.com/appLocation",
"name": "react-app",
"version": "1.1.0",
提供したい場合 相対的 道
"homepage": "./",
"name": "react-app",
相対パス方式を使用すると、IDEの構文検証エラーが警告される場合があります。しかし、ビルドはコンパイル中にエラーなしで行われます。
3)package.json
を保存し、ターミナルでnpm run-script build
を実行します
4)build/
フォルダーの内容をサーバーディレクトリにコピーします。
PS:サーバー内のビルドファイルの場所を頻繁に変更する場合、相対パスを使用するのは簡単です。
Apacheプロキシを介して実行できますが、仮想ディレクトリで実行する必要があります(例 http://mysite.something/myreactapp )。
これは一種の冗長に思えるかもしれませんが、Reactアプリの一部ではない他のページ(たとえばPHPページ)がある場合は、ポート80を介してすべてを提供し、全体がまとまりのあるWebサイトです。
1.)npm run、またはノードサーバーを起動するために使用しているコマンドで、reactアプリを起動します。 http://127.0.0.1:808 で実行されていると仮定します
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を再起動します