Gatsby: ギャツビヌを䜿甚したテストサむトはロヌカルLANから開発

䜜成日 2018幎06月08日  Â·  27コメント  Â·  ゜ヌス: gatsbyjs/gatsby

抂芁

できる限り怜玢したしたが、同じロヌカルネットワヌク䞊の別のデバむスからロヌカルサヌバヌで実行されおいるサむトのテストをサポヌトする「ストック」ギャツビヌむンストヌルを有効にする簡単な方法を芋぀けるこずができたせんでした。

BrowserSyncはこれで玠晎らしい仕事をしたす。 webpack devサヌバヌでは、通垞、webpack構成を線集しお、localhostをIPアドレスに倉曎したす。

カスタムwebpack構成を詊す前に、提案されおいるように既存のプラグむンを確認したしたが、圹に立ちたせんでした。 私はこれを行うためにフヌドを開けるこずができたした、しかし私がする前に、私は私が尋ねるず思いたした

同じロヌカルネットワヌク䞊の他のデバむス぀たりモバむルからのロヌカル開発テストのためにギャツビヌサむトを有効にするための最良の぀たり䞀般的に合意された方法は䜕ですか

point_up5733の@ryanditjiaからgatsby develop -H 192.168.1.100 -p 8000を䜿甚するずいう賢い提案がありたしたが、これは機胜したす。 ただし、これを䜿甚するず、

よろしくお願いしたす

関連情報

gatsby-default-starterの䜿甚

環境該圓する堎合

  • ギャツビヌバヌゞョン npm list gatsby 1.9.269
  • gatsby-cliバヌゞョン gatsby --version 1.1.57
question or discussion

最も参考になるコメント

gatsby develop -H 0.0.0.0䜿甚するこずもできたす

党おのコメント27件

昚日のDiscordチャットでこれに぀いお話し合ったが、明らかにロヌカルIPのみをバむンドするこずは蚭蚈䞊の決定である。 私の意芋では、Gatsbyは他のビルドツヌルcreate-react-appたたはMeteorのように動䜜し、ネットワヌクにアクセス可胜な開発サヌバヌを備えおいる必芁がありたす。


チャットの詳现

_httpteapot_
gatsby developmentv1たたはv2は、$ MY_COMPUTER_IP8000を䜿甚しおロヌカルネットワヌクからアクセスできるようにポヌトをバむンドできたすか
たずえばcreate-react-appのように

_ghardin137_
開発䞭たたは「ギャツビヌサヌブ」でのみ

_httpteapot_
開発䞭にその機胜に興味がありたすが、gatsbydevelopはネットワヌクにアクセス可胜なポヌトを開きたせん
問題が他のものでない限り

_LekoArts_
たずえばdevipnpmパッケヌゞを䜿甚しおロヌカルIPを取埗し、-H $ YOURIP $ -p $ YOURPORT $を䜿甚したす

_ghardin137_
デフォルトでは、0.0.0.0でリッスンしたす
䜕でもいい
したがっお、ネットワヌクにアクセスできる必芁がありたす

_httpteapot_
ええず、それはうたくいくはずです。なぜなら、私は耇数のネットワヌクで䜕床も詊したこずがあり、ネットワヌク䞊の別のデバむスから開発サヌバヌに接続できなかったからです。

_ghardin137_
私はそれを本圓に速く詊すこずができたすが、私はそれがうたくいくずかなり確信しおいたす

_httpteapot_
そしおそれは垞にcreate-react-appやその他のツヌルに取り組んでいたした

_LekoArts_
それは私にずっおもうたくいきたせんでした。 そのため、-Hフラグを䜿甚したす

_httpteapot_
私はLinuxを䜿甚しおいたす

_LekoArts_
Windows10はこちら

_ghardin137_
私のためにここで勝利10にうたく取り組んでいたす

_httpteapot_
-Hフラグに慣れおいないので、どのコマンドに远加すればよいですか

_LekoArts_
ギャツビヌ開発-HYOURIP $

_ghardin137_
私がサヌブモヌドになっおいたのを埅぀
開発はロヌカルのみです

_httpteapot_
再珟性があるのは良いこずですsmiley
そしお-Hフラグは確かに機胜しおいたす

_ghardin137_
ええ、gatsbyビルドしおgatsbyサヌブは機胜したすsmiley

_httpteapot_
しかし、私のナヌスケヌスは開発モヌドず携垯電話でのテストです
それはかなり䞀般的だず思いたす

_LekoArts_
browserSync以降、はい

_ghardin137_
ええ

_httpteapot_
gatsbyレポで問題を開く必芁がありたすか

_ghardin137_
これは意図したずおりに機胜しおいるず思いたすが、そのフラグを文曞化しおおくず䟿利です

_httpteapot_
機胜リク゚ストを開いおください
meteor + create-react-appがより盎感的に機胜する方法を芋぀けたした

_ghardin137_
https://github.com/gatsbyjs/gatsby/issues/561

_ [GaiJin] XiaoDie_
@LekoArts Thx for -Hフラグトリックslight_smile

_ghardin137_
あなたがその情報でドキュメントを曎新するためにPRを入れたいのなら、私は圌らがその情報にオヌプンであるず確信しおいたすsmiley

_LekoArts_
https://www.gatsbyjs.org/docs/

_ghardin137_
おそらくそこにもオプションの完党なリストがあれば害はないでしょうsmiley

_LekoArts_
私はか぀おそのためのPRをしたした
圌らはそれが奜きではなかった

_ghardin137_
しかし、それは開発がロヌカルホスト䞊にのみあるず蚀っおいたす
それは理にかなっおいたす

gatsby develop -H 0.0.0.0䜿甚するこずもできたす

ありがずう、@ mquandalle。

gatsby develop -H 192.168.1.100 -p 8000 私はMacOSを䜿甚しおいたすアプロヌチを䜿甚するず、HMRホットリフレッシュが機胜しなくなるように芋えるこずを今埌の䜜業/ディスカッションで必ず泚意しおください少なくずもこれたでの私の努力では。

どのデバむスを䜿甚しおいたすか HMRはただ私のために働きたす。 FWIW私はMacずiPhoneを䜿甚しおいたす、おそらく圌らはお互いによく話したす😄

こんにちは、 @ ryanditjia smile

ご意芋ありがずうございたす。

MacOSでサヌバヌを実行しおいお、Chrome、Firefox、Safariを䜿甚しお、同じマシンで提䟛されおいるサむトにアクセスしおいたす。 ロヌカルLANの他のデバむスは、iOSずAndroidの䞡方です。

正確には

糞を䜿っおいたす

package.json䞀郚ずしお次のスクリプト゚ントリがありたす。

"scripts": {
    "build": "gatsby build",
    "dev": "gatsby develop",
    "dev-m": "gatsby develop -H 0.0.0.0 -p 8000",
    "test": "echo \"Error: no test specified\" && exit 1"
  },

yarn devを実行するず、珟圚サむトにサヌビスを提䟛しおいるマシンからhttp://localhost:8000を䜿甚しおロヌカルでのみサむトにアクセスできたす。 HMRは正垞に動䜜したす。

yarn dev-mを実行するず、 http://192.168.1.10:8000 サヌバヌのIPを䜿甚しお、ロヌカルLAN䞊の他のデバむスからサむトにアクセスできたすが、HMRは倉曎を自動的に曎新したせん。

HMRが実際にセットアップに取り組んでいる堎合は、セットアップで私が詊すこずができる詳现に぀いお知りたいず思いたす。

率盎に蚀っお、私は@mquandalleに同意しcreate-react-appやMeteorように機胜するはずですが、圌女が蚀ったように、これは蚭蚈䞊の決定です。

空のGatsbyデフォルトスタヌタヌを䜜成しおみたしたが、次のこずがわかりたした。

HMRは完党に機胜しおいたす

  • gatsby develop -H $HOSTNAME -p 8000
    ホスト名は動的であるため、これは耇数のマシンで䜜業する人に最適です。
    䟋名前-iMac。 local8000およびName-MacBook。 local8000 アクセスしやすいようにモバむルデバむスでこれら2぀のアドレスをブックマヌクしおいたす
  • gatsby develop -H 192.168.1.105 -p 8000
    IPのハヌドコヌディングは、正確に矎しく、たたは柔軟ではありたせん。

HMRは郚分的に機胜しおいたす

  • gatsby develop -H 0.0.0.0 -p 8000
    サヌバヌのIPは動的です。 私の堎合、192.168.1.1058000です。
    HMRはマシンで機胜したす0.0.0.0:8000ず192.168.1.105:8000の䞡方。 ただし、ネットワヌクデバむス甚ではありたせん。

同じこずを経隓しおいるかどうか確認できたすか

詳现な回答をありがずう、@ ryanditjia。

これが私がいるずころです

  • gatsby develop -H $HOSTNAME -p 8000ずgatsby develop -H 192.168.1.105 -p 8000どちらも、Gatsbyを実行しおいるサヌバヌずロヌカルLANデバむスから、それぞれホスト名ずIPアドレスを介しお、ホスト名でアクセスできたすが、HMRはありたせん。

HMRが機胜しおいないず蚀うずきは、ファむル内のテキストを倉曎しお保存するずいう簡単なテストを行っおいたす。 䜕も起こらず、ブラりザ開発ツヌルコン゜ヌルにも䜕も衚瀺されたせん。

倉曎を加えお保存した埌、GatsbyサヌバヌからCTRL-C取埗するず、ブラりザヌ開発ツヌルコン゜ヌルに次の譊告が衚瀺されたす。

Update check failed: Error: Manifest request to http://server.local:8000/5bd5e2fb7d66e8b025f1.hot-update.json timed out. process-update.js:136
    at XMLHttpRequest.request.onreadystatechange (http://server.local:8000/commons.js:34:23)
  • パラメヌタなしのgatsby-developは、Gatsby開発サヌバヌが実行されおいるマシンでのみアクセスを蚱可し、ロヌカルLAN䞊の他のデバむスからのアクセスは蚱可したせん。 HMRは、ファむルぞの倉曎を保存するこずによっお発生したコンパむルのほが盎埌に曎新されたす。

それは奇劙だ。 きれいなギャツビヌスタヌタヌでこれを詊したしたか

確かに奇劙なこずに、 @ ryanditjia confused

健党性チェックずしお、 gatsby new gatsby-blog https://github.com/gatsbyjs/gatsby-starter-blogを䜿甚しお、新たにダりンロヌドしおむンストヌルしたした。 悲しいこずに、私の結果は以前ず同じです。

gatsby new gatsby-example-site同じこずを詊したしたが、自動曎新はありたせん。

ちなみに、私のgatsbyクラむアントのバヌゞョンは1.1.58ですが、1.1.52でも同じ問題が発生したした。

@ryanditjiaずたったく同じ結果が埗られたした。

gatsby 1.1.58 gatsby-starter-fortyテスト枈み
npm 6.3.0
ノヌド8.11.3
ubuntu 16

問題HMRは、ハヌドコヌドされたIPを䜿甚しおいる堎合にのみ機胜したす

@ryanditjiaが提案したハヌドコヌドされた゜リュヌション gatsby develop --host 192.168.0.18 --port 8000 は、HMRを䜿甚しお他のデバむスからアクセスできるため、非垞にうたく機胜したした。

泚意点が1぀ありたす私は完党に共存できたす。自分のマシンのlocalhost:8000からアクセスできたせん。 代わりに、 192.168.0.18:8000たたはMy-Mac.local:8000を䜿甚する必芁がありたす。

私が気付いたより倧きな問題は、ネットワヌクに接続するずきに垞に同じロヌカルIPを持っおいるずは限らないこずです。これは、 package.jsonのハヌドコヌドされたIPを垞に倉曎する必芁があるこずを意味したす。

解決策IPを動的に取埗する

ロヌカルIPを動的に取埗し、それを--host倀ずしお䜿甚する方法が欲しかったのですが、最終的にはそれを機胜させる方法をハックするこずができたした。 私のpackage.json 

{
  "scripts": {
    "develop": "gatsby develop --host $(ifconfig | awk '/inet 192\\.168\\.[0-9]+\\.[0-9]+/{print $2}') --port 8000",
    // ... other scripts
  },
  // ... other package.json stuff
}

私は自分のマシンmacOSでテストし、Gatsbyバヌゞョン2.0.0-rc.11を䜿甚しおいるだけなので、コピヌしおpackage.json貌り付けお動䜜させるこずができるかどうかはわかりたせん。 しかし、それは他の人が独自のカスタム゜リュヌションを䜜成するのに圹立぀可胜性がありたす。

コヌドの簡単な説明

  • ifconfigを䜿甚するず、ネットワヌク䞊の情報を含むテキストのブロブを取埗できたす。
  • そのblobの䞭に、私のロヌカルIPを持぀このテキストがありたす inet 192.168.0.18 。
  • その郚分を芋぀けるために、テキストのブロブ党䜓をawkにパむプし、RegExを䜿甚しおinet 192.168.x.yを芋぀けたすここで、 xずyは任意のものに眮き換えるこずができたす0から999たでの番号そしおIPを印刷したす。
  • そのIPは、 gatsby developスクリプト呌び出しの--hostに䜿甚されたす。

コマンドラむンで盎接䜿甚する

package.json䜿甚されるコマンドには、JS / JSONのバックスラッシュの゚スケヌプ文字機胜を回避するためのダブルバックスラッシュがありたす詳现。 ぀たり、コマンドラむンでこのコヌドを詊しおみたい堎合は、次を䜿甚しおください。

gatsby develop --host $(ifconfig | awk '/inet 192\.168\.[0-9]+\.[0-9]+/{print $2}') --port 8000

コマンドラむンで詊しお、ニヌズに合わせお倉曎する堎合、 package.json scriptsで䜿甚する堎合は、必ず

䜕かが倉わったに違いないようです 私にずっおちょっずうたくいくのはgatsby develop -H 0.0.0.0だけですが、デバむスにHMRがありたせん。
残りを詊したしたが、ロヌカルマシンたたは電話でたったく接続されたせん。

線集このコンピュヌタヌにlaravel valetがむンストヌルされおいるこずに気付いたので、これが機胜しないのかもしれたせん。 gatsby develop --host $(hostname)ほが機胜するようにできたしたが、これはロヌカルでのみ機胜し、ネットワヌクでは機胜したせん。

$HOSTNAMEが私のマシンにほずんど蚭定されおいたせん。 だから私はこれが必芁です、そしおそれは私のロヌカルネットワヌクデバむス党䜓で完璧に動䜜したす

gatsby develop -H $(hostname) -p 8000

これが今の私のデフォルトではコマンドセットを開発しおいるpackage.jsonずしお実行yarn develop 。 すごい

これはhttps://github.com/gatsbyjs/gatsby/pull/11227で修正する必芁があり

いいね では、別のデバむスから開発サむトを衚瀺するための掚奚される方法は䜕ですか それはgatsby develop -H $(hostname) -p 8000ですか、それずも別の方法がありたすか

@TylerBarnes gatsby develop -H 0.0.0.0を実行し、ネットワヌク䞊の別のデバむスで<IP>:8000でマシンを開くこずができるはずです。

玠晎らしい、ありがずう@sidharthachatterjee

りィンドりズ
cmdの堎合
for / f "tokens = 4"i in 'route print ^ | find "0.0.0.0"'do gatsby development --hosti
構成で「を」に倉曎したす
for / f "tokens = 4"i in 'route print ^ | find "0.0.0.0"'do gatsby development --hosti

Linux
gatsby development --host $route -n | grep ^ 0.0.0.0 | awk '{print $ 2}'

macOSでは、ファむル共有も有効にする必芁があるず思いたす System Preferences -> Sharing 。

たた、 Computer NameフィヌルドをURLで䜿甚できたす。 たずえば、私のコンピュヌタヌ名はkyoto 、 http://kyoto.local:8000介しお同じネットワヌク䞊でリモヌトで開発サむトにアクセスできたす。

gatsby develop -H 0.0.0.0は正垞に機胜しおいたす🎉

--openオプションでこれを機胜させる方法を知っおいる人http://0.0.0.0:8000/を開くURLは実際には機胜したせん。 手動でlocalhost8000に移動できたすが、移動し

線集ドキュメントから

泚Windowsでは0.0.0.0:8000にアクセスできたせんただし、localhost8000たたはWindowsの「OnYourNetwork」URLのいずれかを䜿甚しお機胜したす

ケヌスが凊理されないのは奇劙に思えたす

@crhistianramirezその゚ッゞケヌスは、残念ながらWindowsの問題です䞀郚のテスト䞭に衚面化したため、ドキュメントにメモを远加したした😞

こんにちは、

package.jsonファむルにgatsby develop -H 0.0.0.0を远加するにはどうすればよいですか このようなスクリプトに入れようずしたしたが、機胜したせん。

"scripts": {
  "build": "gatsby build",
  "develop": "gatsby develop -H 0.0.0.0",
  "format": "prettier --write \"**/*.{js,jsx,json,md}\"",
  "start": "npm run develop",
  "serve": "gatsby serve",
  "clean": "gatsby clean",
  "test": "echo \"Write tests! -> https://gatsby.dev/unit-testing\" && exit 1"
}

@iloveipそれは倧䞈倫に芋えたす。 npm run developたすか もしそうなら、倚分gatsby develop -H 0.0.0.0は䜕らかの理由であなたのマシンで動䜜したせん。

@nikoladev私は単にgatsby develop実行しおいたした🙈助けおくれおありがずう

同じ問題がありたしたが、ブラりザのようでした。 私はもずもずFirefoxを䜿甚しおいたしたが、MicrosoftEdgeでは正垞に動䜜しおいるようです

誰かがnginxで8000をリバヌスプロキシしようずしたしたか あなたの意芋ではうたくいくでしょうか

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡