webpack dev 서버를 포트 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

1
아마 이것이 도움이 될 것입니다 : webpack.github.io/docs/webpack-dev-server.html#proxy 자바 스크립트 파일에 대한 요청과 웹 팩 서버, 핫 로더 및 redux timetravel에 의한 요청을 제외한 모든 것에 프록시를 사용한다고 생각합니다. 그래서 /data:image ..., ... .js/sockjs-node...
HMR

잘못된 호스트 헤더가 표시되면 webpack.serve.config.js에서 disableHostCheck를 true로 설정해야합니다. github.com/webpack/webpack-dev-server/issues/882를 참조하십시오 . 상황에 따라 보안상의 허점이 될 수 있으므로주의하십시오.
Brian Deterling

131

이것이 내가 한 방법이며 꽤 잘 작동하는 것 같습니다.

webpack.config.js 파일에서 다음을 추가하십시오.

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

분명히 다른 포트와 충돌하지 않는 포트를 사용할 수 있습니다. 약 4 시간을 소비했기 때문에 충돌 문제에 대해서만 언급합니다. 내 서비스가 동일한 포트에서 실행되고 있음을 발견하기 위해서만 문제를 해결했습니다.


구성 파일의 항목 섹션에서 호스트와 포트를 지정하는 대신 가져 가십시오.
JoeTidee

2
설명서에 대한 링크를 추가해 주 시겠습니까?

1
단순히 inline : true를 추가하면 나에게 효과적이었습니다. BTW 편집 한 webpack 파일은 'webpack.dev.conf.js (2018 년 3 월 기준)입니다.
Sean O

68

다음과 같이 webpack (webpack.config.js)을 구성하십시오.

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 인스턴스에서 웹팩을 실행하는 중에 발생하는 문제를 해결했습니다. 감사!
Maniaque

위의 스 니펫을 사용하여 포트 번호를 변경할 수 있었지만 호스트는 여전히 변경되지 않았습니다. ip-address에서 사이트에 액세스 할 수 있도록 호스트를 0.0.0.0으로 만들려고했지만 작동하지 않았습니다. 이것을 달성하는 방법에 대한 도움이 필요하십니까?
Rito

26

JavaScript 개발과 ReactJS를 처음 사용합니다. 반응 스크립트 코드를보고 알아낼 때까지 나에게 맞는 대답을 찾을 수 없었습니다. 반응 스크립트를 사용하여 ReactJS 15.4.1 이상을 사용하면 환경 변수를 사용하여 사용자 정의 호스트 및 / 또는 포트로 시작할 수 있습니다.

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을 사용하여 앱이 제대로 작동해야합니다.

추신 : GACDTL001SS369k내 컴퓨터 이름 이었으므로 컴퓨터의 컴퓨터 이름으로 바꾸십시오.


4

'create-react-app'로 만든 React 응용 프로그램 인 경우 이동하여 package.json변경하십시오.

"start": "react-scripts start",

~ ( 유닉스 )

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

또는 ... ( 승리 )

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


또는 node_modules / react-scripts / script / start.js를 편집하고 DEFAULT_PORT 및 HOST를 변경하십시오. 새 버전이 npm 업데이트시 파일을 업데이트 할 때 덮어 쓰기시 파일을 보호하십시오.
Rogelio Triviño

1

다음은 JSON 구성 파일에서 나를 위해 일했습니다.

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

1

나는 다른 답변들과 씨름했다. (내 설정은 Windows의 Ubuntu 18.04 npm run dev가상 상자에서 프로젝트를 생성 한 후 webpack 3.12.0으로 실행 중입니다 vue init webpack. 포트 3000을 호스트로 전달하도록 방랑자를 구성했습니다.)

  • 불행히도 퍼팅 npm run dev --host 0.0.0.0 --port 3000은 작동하지 않았습니다 .- 여전히 localhost : 8080에서 실행되었습니다.
  • 또한 파일 webpack.config.js이 존재하지 않아 파일을 만드는 것도 도움이되지 않았습니다.
  • 그런 다음 구성 파일이 build/webpack.dev.conf.js(및 build/webpack.base.conf.jsbuild/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에서 "start"값을 다음과 같이 변경하십시오.

참고 : $ 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"
},

다음을 실행하여 "build"스크립트를 실행하십시오. npm run build


-1

다른 포트를 쉽게 사용하기 위해 이것을 시도했습니다.

PORT=80 npm run dev
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.