Webpack-dev-server는 앱 페이지 대신 디렉토리 목록을 제공합니다.


93

여기에 이미지 설명 입력

에서 실제 앱만 볼 수 있습니다 /public.

의 구성 webpack.config.js은 다음과 같습니다.

var path    = require('path');
var webpack = require('webpack');

module.exports = {

  entry: [
    'webpack-dev-server/client?http://localhost:8080',
    'webpack/hot/only-dev-server',
    './app/js/App.js'
],

  output: {
    path: path.join(__dirname, 'public'),
    filename: 'bundle.js',
    publicPath: 'http://localhost:8080'
  },

  module: {
    loaders: [
      {
        test: /\.js$/,
        loaders: ['react-hot', 'babel-loader'],
        exclude: /node_modules/
      }
     ]
   },

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

};

프로젝트 계층 구조는 다음과 같습니다.

    • js
  • node_modules

  • 공공의

    • CSS

    • img

    bundle.js

    index.html

  • package.json

  • webpack.config.js

http://localhost:8080/항목이 응용 프로그램에 대한 것인지 확인하려면 어떻게 수정해야 합니까?

답변:


79

웹팩의 개발 서버를 사용 /public하는 경우 기본 디렉토리 로 사용할 옵션을 전달할 수 있습니다 .

devServer: {
    publicPath: "/",
    contentBase: "./public",
    hot: true
},

더 많은 옵션과 일반 정보 는 webpack 구성 문서 , 특히 webpack dev 서버 문서 를 참조하십시오.


1
이 답변에 감사드립니다. 또한 두 문서에 대한 링크를 게시 해 주셔서 감사합니다.
크리스 슈미츠

3
Webpack 2는 어떻습니까? 나는 문서를 읽었지만 스스로 알아낼 수 없었다.
mightyiam

@mightyiam 당신은 publicPath 속성도 설정하고 싶을 것입니다. 그 내용을 포함하도록 업데이트하겠습니다.
Sandals

1
문서에서 이것을 어떻게 알아낼 수 있는지는 모르겠습니다. 감사합니다. 해당 속성에 대한 일부 문서를 다시 작성하는 것이 좋습니다.
mightyiam

17

--content-base시작 스크립트에 플래그를 추가 할 수도 있습니다. 예 :

    "scripts": {
        "start:dev": "webpack-dev-server --inline --content-base ./public"
    }

4

제 경우 'index.html'에는 HTMLWebpackPlugin. 이 플러그인을 사용하는 경우 파일 이름을 다시 확인하십시오.

var HTMLWebpackPlugin = require('html-webpack-plugin');
var HTMLWebpackPluginConfig = new HTMLWebpackPlugin({
  template: __dirname + '/app/index.html',
  filename: 'index.html',
  inject: 'body'
});

이것은 내가 webpack에 의해 자동 생성 된 HTML을 얻고 있다는 사실을 수정하는 데 도움이되었습니다. 이제이 template매개 변수 를 설정 하여 문제없이 내 HTML을 지정할 수 있습니다. 감사합니다!
danivicario

1

실수로 index.html을 제거한 다음 디렉토리 목록 만 얻었습니다.

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