webpack開発サーバーをポート80と0.0.0.0で実行してパブリックにアクセスできるようにする方法は?


180

私はnodejs / reactjsの世界全体に慣れていないので、私の質問がばかげているようでしたら謝罪してください。それで、私はreactabular.jsいじっています。

私が行うときはいつでも、npm startそれは常に実行されlocalhost:8080ます。

0.0.0.0:8080公開してアクセスできるようにするには、どのように変更して実行するのですか?上記のリポジトリでソースコードを読み取ろうとしましたが、この設定を行うファイルが見つかりませんでした。

また、それに追加するには-それが80可能な場合、どのようにポートで実行するのですか?

回答:


233

このようなことがうまくいきました。これでうまくいくと思います。

これを使用してwebpack-devを実行します

webpack-dev-server --host 0.0.0.0 --port 80

そして、これをwebpack.config.jsに設定します

entry: [
    'webpack-dev-server/client?http://0.0.0.0:80',
     config.paths.demo
 ]

ホットローディングを使用している場合は、これを行う必要があります。

これを使用してwebpack-devを実行します

webpack-dev-server --host 0.0.0.0 --port 80

そして、これをwebpack.config.jsに設定します

entry: [
    'webpack-dev-server/client?http://0.0.0.0:80',
    'webpack/hot/only-dev-server',
     config.paths.demo
 ],

....
plugins:[new webpack.HotModuleReplacementPlugin()]

1
こんにちは、これは初めてですが、クライアントスクリプトにreduxを使用したいと思います。問題は、アプリケーションがコンテンツとjsonエンドポイントを提供する.netアプリケーションであることです。開発中にこれを行う<script src="http://localhost:8080/webpack-dev-server.js"></script>には、ページに追加して、クロスドメイン許可プラグインをインストールする必要がありますか?これらのツールは興味深いように見えますが、サーバーもノードであると想定しているか、何か不足していますか?
HMR 2016年

1
多分これは私に役立ちます:webpack.github.io/docs/webpack-dev-server.html#proxy javascriptファイルのリクエストと、webpackサーバー、ホットローダー、およびredux timetravelによるリクエスト以外のすべてにプロキシを使用すると思います。そう/data:image ...... .jsそして/sockjs-node...
HMR 2016年

無効なホストヘッダーを取得した場合は、webpack.serve.config.jsでdisableHostCheckをtrueに設定する必要がある場合があります。github.com/webpack/webpack-dev-server/issues/882を参照してください。状況によってはセキュリティホールになる場合がありますのでご注意ください。
Brian Deterling 2018年

131

これは私がそれをした方法であり、それはかなりうまくいくようです。

あなたのwebpack.config.jsファイルに以下を追加してください:

devServer: {
    inline:true,
    port: 8008
  },

明らかに、他のポートと競合していない任意のポートを使用できます。私が約4時間費やしたという理由だけで、紛争の問題について言及します。私のサービスが同じポートで実行されていることを発見するためだけに問題と闘っています。


これは、構成ファイルのエントリセクションでホストとポートを指定する代わりに使用しますか?
JoeTidee 2016

2
ドキュメントへのリンクを追加していただけませんか?
水が多い

1
単にinline:trueを追加するだけでうまくいきました。ところで私が編集したwebpackファイルは 'webpack.dev.conf.js(2018年3月現在)でした。
Sean O

68

(webpack.config.js内の)webpackを構成します:

devServer: {
  // ...
  host: '0.0.0.0',
  port: 80,
  // ...
}

2
それはのために働いていません。devServer:{インライン:true、ホスト: '0.0.0.0'、ポート:8088}、
NK Chaudhary

(webpack.config)を使用すると、私のために機能します:devServer:{host: 'xx.xx.xx.xxx'、port:8089}、
Dijo

これにより、UdemyのReduxを使用しModern Reactコースを試しながら、非常に密接に関連する問題が解決されました。Windowsの開発環境をVagrant仮想ボックスで実行しています。このコースでは、開発環境のセットアップに関するガイダンスはまったく提供されていません。
Vince

ええ、これはCloud9インスタンスでwebpackを実行していた問題に対処しました。ありがとう!
Maniaque 2017年

上記のスニペットを使用してポート番号を変更できましたが、ホストはまだ変更されていません。ホストを0.0.0.0にして、ip-addressからサイトにアクセスできるようにしようとしましたが、機能しませんでした。これを達成する方法について何か助けはありますか?
Rito

26

私はJavaScript開発とReactJSが初めてです。私は、react-scriptsコードを見て解決するまで、自分に役立つ答えを見つけることができませんでした。ReactJS 15.4.1以降では、react-scriptsを使用して、環境変数を使用してカスタムホストやポートから開始できます。

HOST='0.0.0.0' PORT=8080 npm start

うまくいけば、これは私のような初心者に役立ちます。


16

以下は私のために働いた-

1)で Package.json追加:

"scripts": {
    "dev": "webpack-dev-server --progress --colors"
}

2)webpack.config.jsエクスポートする構成オブジェクトの下にこれを追加します。

devServer: {
    host: "GACDTL001SS369k", // Your Computer Name
    port: 8080
}

3)ターミナルタイプ: npm run dev

4)#3がコンパイルされて準備ができたら、ブラウザに向かい、次のようにアドレスを入力します。 http://GACDTL001SS369k:8080/

あなたのアプリは、うまくいけば、他の人が同じネットワーク上でアクセスできる外部URLで動作するはずです。

PS:GACDTL001SS369k私のコンピューター名でしたので、あなたのマシンにあるものに置き換えてください。


4

あなたがいる場合は、アプリケーションは、あなたに行く「を作成反応するアプリ」で作成されたリアクトpackage.jsonと変更

"start": "react-scripts start",

へ...(UNIX

"start": "PORT=80 react-scripts start",

または...(勝利

"start": "set PORT=3005 && react-scripts start"


または、node_modules / react-scripts / script / start.jsを編集して、DEFAULT_PORTとHOSTを変更します。新しいバージョンがnpmの更新でファイルを更新するときにファイルを上書きしないように保護するだけです。
RogelioTriviño

1

以下はJSON構成ファイルで私のために働きました:

"scripts": {
  "start": "webpack-dev-server --host 127.0.0.1 --port 80 ./js/index.js"
},

1

他のいくつかの答えに苦労しました。(私の設定は:WindowsでUbuntu 18.04 virtualbox npm run devを使用vue init webpackしてプロジェクトを作成した後、webpack 3.12.0で実行しています。ポート3000をホストに転送するようにvagrantを構成しています。)

  • 残念ながら入れて npm run dev --host 0.0.0.0 --port 3000は機能しませんでした-それでもlocalhost:8080で実行されていました。
  • さらに、ファイルwebpack.config.jsが存在せず、ファイルを作成しても役に立ちませんでした。
  • 次に、構成ファイルがbuild/webpack.dev.conf.js(およびbuild/webpack.base.conf.jsおよびbuild/webpack.prod.conf.js)にあることを確認しました。ただし、これらのファイルは実際にからHOSTおよびPORTを読み取るため、これらのファイルを変更することはお勧めしませんprocess.env

そこで、process.env変数の設定方法を検索し、次のコマンドを実行して成功を収めました。

HOST=0.0.0.0 PORT=3000 npm run dev

これを行った後、「アプリケーションはここで実行されています:http : //0.0.0.0 : 3000」が最終的に表示さlocalhost:3000れ、ホストマシンから参照して最終的に確認できます。

編集:これを行う別の方法は、でdevホストとポートを編集することですconfig/index.js


1

私にとって:リッスンホストの変更はうまくいきました:

.listen(3000, 'localhost', function (err, result) {
        if (err) {
            console.log(err);
        }
        console.log('Listening at localhost:3000');
    });

に変更されました:

.listen(3000, '0.0.0.0', function (err, result) {
        if (err) {
            console.log(err);
        }
        console.log('Listening at localhost:3000');
    });

サーバーは0.0.0.0でリッスンを開始しました


0

上記の解決策を試しましたが、うまくいきませんでした。私のプロジェクトのpackage.jsonでこの行に気づきました:

 "bin": {
"webpack-dev-server": "bin/webpack-dev-server.js"

}、

私は見てbin/webpack-dev-server.js、この行を見つけました:

.describe("port", "The port").default("port", 8080)

私はポートを3000に変更しました。少し力ずくのアプローチですが、それは私にとってはうまくいきました。


0

package.jsonで、「開始」値を次のように変更します

注:$ sudo npm startを実行します。ポート80で反応スクリプトを実行するには、sudoを使用する必要があります。

ここに画像の説明を入力してください


0

私にとって、このコードは機能しました。package.jsonファイルに追加するだけです:

"scripts": {
    "dev-server": "encore dev-server",
    "dev": "webpack-dev-server --progress --colors",
    "watch": "encore dev --watch",
    "build": "encore production --progress"
},

そして、実行してスクリプト「ビルド」を実行します npm run build


-1

別のポートを簡単に使用するためにこれを試しました:

PORT=80 npm run dev
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.