truffle webpack下localhost能够访问,而IP地址无法访问的解决方法

最近学习ethereum时,用truffle webpack遇到一个问题,就是启动服务后能够用localhost:8080访问,但是却不能用IP:8080访问。这样,另外的电脑就不能够访问自己的应用了。

本机IP:219.216.65.127

做了个小实验,nodejs+express,我用node启动了应用程序,既能用localhost:3000访问,也能用219.216.65.127:3000访问,另外一台电脑也能够访问。这样我就想着是不是webpack的配置的问题?

在网上搜到别人的解决方案是:npm run dev - -host “0.0.0.0”

很遗憾的是,我没有成功(我不知道哪里出了问题,麻烦哪位知道的帮我留个言,谢谢大家)
结果如下:

$ npm run dev --host 219.216.65.127

> truffle-init-webpack@0.0.2 dev /home/hepu/Desktop/Test/test
> webpack-dev-server "219.216.65.127"

Project is running at http://localhost:8080/
webpack output is served from /
Hash: 2e535af56b1ecc259b4a
Version: webpack 2.7.0
Time: 2047ms
     Asset       Size  Chunks                    Chunk Names
    app.js    1.35 MB       0  [emitted]  [big]  main
index.html  925 bytes          [emitted]         
chunk    {0} app.js (main) 1.32 MB [entry] [rendered]
   [82] ./~/web3/index.js 193 bytes {0} [built]
   [86] ./app/javascripts/app.js 3.64 kB {0} [built]
   [87] (webpack)-dev-server/client?http://localhost:8080 5.83 kB {0} [built]
   [88] ./build/contracts/MetaCoin.json 2.62 kB {0} [built]
  [127] ./~/loglevel/lib/loglevel.js 6.74 kB {0} [built]
  [161] ./~/strip-ansi/index.js 161 bytes {0} [built]
  [163] ./~/style-loader/addStyles.js 6.91 kB {0} [built]
  [164] ./app/stylesheets/app.css 905 bytes {0} [built]
  [171] ./~/truffle-contract/index.js 2.64 kB {0} [built]
  [206] ./~/url/url.js 23.3 kB {0} [built]
  [241] (webpack)-dev-server/client/overlay.js 3.6 kB {0} [built]
  [242] (webpack)-dev-server/client/socket.js 856 bytes {0} [built]
  [244] (webpack)/hot nonrecursive ^\.\/log$ 160 bytes {0} [built]
  [245] (webpack)/hot/emitter.js 77 bytes {0} [built]
  [247] multi (webpack)-dev-server/client?http://localhost:8080 ./app/javascripts/app.js 219.216.65.127 52 bytes {0} [built]
     + 233 hidden modules

ERROR in multi (webpack)-dev-server/client?http://localhost:8080 ./app/javascripts/app.js 219.216.65.127
Module not found: Error: Can't resolve '219.216.65.127' in '/home/hepu/Desktop/Test/test'
 @ multi (webpack)-dev-server/client?http://localhost:8080 ./app/javascripts/app.js 219.216.65.127
webpack: Failed to compile.

方法1: 根据上面错误提示,我找到了node_modules目录下的webpack-dev-server/.bin/webpack-dev-server.js文件,里面的yargs.options中的字段

"host": {
        type: "string",
        //default: "localhost",
        default: "219.216.65.127",  //新增
        describe: "The hostname/ip address the server will bind to",
        group: CONNECTION_GROUP
    }

把默认的IP地址改成本机IP,重新启动应用程序,现在能够用219.216.65.127:8080访问。但是却不能用localhost:8080访问了。

方法2: https://github.com/webpack/webpack-dev-server/issues/147
在上面链接里面找到了一个解决方法,就是直接用node_modules/.bin/webpack-dev-server –hot –host 219.216.65.127启动服务,不用npm run dev。
启动成功

~/Desktop/Test/test$ node_modules/.bin/webpack-dev-server --hot --host 219.216.65.127
Project is running at http://219.216.65.127:8080/
webpack output is served from /
Hash: 1120d8dcc38ac654dcf2
Version: webpack 2.7.0
Time: 2038ms
     Asset       Size  Chunks                    Chunk Names
    app.js    1.38 MB       0  [emitted]  [big]  main
index.html  925 bytes          [emitted]         
chunk    {0} app.js (main) 1.32 MB [entry] [rendered]
   [83] ./~/web3/index.js 193 bytes {0} [built]
   [87] (webpack)/hot/emitter.js 77 bytes {0} [built]
   [88] ./app/javascripts/app.js 3.64 kB {0} [built]
   [89] (webpack)-dev-server/client?http://219.216.65.127:8080 5.83 kB {0} [built]
   [90] (webpack)/hot/dev-server.js 1.57 kB {0} [built]
   [91] ./build/contracts/MetaCoin.json 2.62 kB {0} [built]
  [129] ./~/loglevel/lib/loglevel.js 6.74 kB {0} [built]
  [163] ./~/strip-ansi/index.js 161 bytes {0} [built]
  [166] ./app/stylesheets/app.css 905 bytes {0} [built]
  [173] ./~/truffle-contract/index.js 2.64 kB {0} [built]
  [208] ./~/url/url.js 23.3 kB {0} [built]
  [244] (webpack)-dev-server/client/socket.js 856 bytes {0} [built]
  [246] (webpack)/hot nonrecursive ^\.\/log$ 160 bytes {0} [built]
  [247] (webpack)/hot/log-apply-result.js 1.02 kB {0} [built]
  [249] multi (webpack)-dev-server/client?http://219.216.65.127:8080 webpack/hot/dev-server ./app/javascripts/app.js 52 bytes {0} [built]
     + 235 hidden modules
webpack: Compiled successfully.

跟方法1一样,只能用IP+port访问,不能用localhost+port访问了。
这里写图片描述

这样是可以在另外一台电脑上用219.216.65.127:8080访问的

猜你喜欢

转载自blog.csdn.net/yooliee/article/details/76283872