webpack - dev - server 설정
                                            
 9152 단어  webpack
                    
    webpack    ,      。  webpack   api,      webpack api       ,
       ,     。     webpack-dev-server  。webpack-dev-server        
         ,    nginx,  express ,             ,       F5   
  。     ,      :
  프로젝트 디 렉 터 리 구조
     webpack
            build
                webpack.pro.conf.js
            src
                js
                css
                img
            index.html
            package.json
            package-lock.json 
  2. 설치 에 필요 한 가방
npm install webpack wepback-cli webapck-dev-server html-webpack-plugin --save-dev
     "webpack": "^4.16.2"  "webpack-cli": "^3.1.0"  "webpack-dev-server": "^3.1.5" 
 "html-webpack-plugin": "^3.2.0"
  웹 팩 4 는 웹 팩 뿐만 아니 라 웹 팩 - cli 도 설치 해 야 합 니 다. 웹 팩 - dev - server 는 로 컬 서 비 스 를 시작 하 는 패키지 입 니 다. html - webpack - plugin
웹 팩 의 플러그 인 입 니 다. 홈 페이지 를 사용자 정의 할 수 있 습 니 다. 구체 적 으로 뒤에 말씀 드 리 겠 습 니 다.
3. webpack. pro. conf. js 파일 코드
    var path = require("path");
    var webpack = require("webpack");
    const HtmlWebpackPlugin = require('html-webpack-plugin');
    module.exports = {
        mode:"development",
        entry:{
            app:"./src/js/main.js"
        },
        output:{
            filename: "bundle.js",
            path:path.resolve(__dirname,"../dist"),
            //path.resolve nodejs    ,   nodejs api
        },
         devServer:{
            contentBase:false,
            //       contentBase,    contentBase       bundle.js      ,
            //         ,  dist      ,   false.
            host:'localhost',
            port:'8888',
            inline:true,//webpack    
            watchOptions: {
                aggregateTimeout: 2000,//          
                poll: 1000//        
            },
            compress:true,//       gzip   
            historyApiFallback:true,//        index.html
            hot:true,//     ,    new webpack.HotModuleReplacementPlugin()  
            open:true,
        },
        plugins: [
            new webpack.HotModuleReplacementPlugin(),
            new HtmlWebpackPlugin({
                template:"index.html",
                title:'index',
                inject: true
            }),
            // new webpack.NamedModulesPlugin(), 
            // HMR shows correct file names in console on update.
            // new webpack.NoEmitOnErrorsPlugin()
        ]
    }   
  HtmlWebpackPlugin 플러그 인 template 는 사용 할 템 플 릿 입 니 다. 템 플 릿 은 선택 한 html 파일 로 개발 에 필요 한 html 를 생 성 합 니 다. 이 템 플 릿 은 index. html 코드 와 같이 설정 할 수 있 습 니 다.
        
        
        
            
            
            
            
        
        
            <div id="app"/>
        
        
  titile  ,  HtmlWebpackPlugin  title,     HtmlWebpackPlugin  。        ,        
 head,body     js,    inject    。
     loader,loader     es6,stylus,less  ,           ,  loader                      
   。
</code></pre> 
  <hr/> 
  <p> 、  loader</p> 
  <pre><code><span class="hljs-tag">module</span>: <span class="hljs-rules">{
            <span class="hljs-rule"><span class="hljs-attribute">rules</span>:<span class="hljs-value"> [
                {
                    test:/\.js$/,
                    use:[
                        <span class="hljs-string">'babel-loader'</span>
                    ],
                    include:path.<span class="hljs-function">resolve(__dirname,<span class="hljs-string">"../src"</span>)</span>,
                    exclude:path.<span class="hljs-function">resolve(__dirname,<span class="hljs-string">"../node_modules"</span>)</span>
                </span></span></span>},
                <span class="hljs-rules">{
                    <span class="hljs-rule"><span class="hljs-attribute">test</span>:<span class="hljs-value"> /\.(png|jpg|gif)$/,
                    use:[
                        {
                            loader: <span class="hljs-string">"url-loader"</span>,
                            options: {
                                limit:<span class="hljs-number">10000000</span>
                            </span></span></span>}
                        }
                    ]
                },
                <span class="hljs-rules">{
                    <span class="hljs-rule"><span class="hljs-attribute">test</span>:<span class="hljs-value">/\.css$/,
                    use:[
                        {
                            loader: <span class="hljs-string">"style-loader"</span>
                        </span></span></span>},
                        <span class="hljs-rules">{
                            <span class="hljs-rule"><span class="hljs-attribute">loader</span>:<span class="hljs-value"><span class="hljs-string">"css-loader"</span>
                        </span></span></span>}
                    ]
                },
                <span class="hljs-rules">{
                    <span class="hljs-rule"><span class="hljs-attribute">test</span>:<span class="hljs-value">/\.styl/,
                    use:[
                        {
                            loader: <span class="hljs-string">"style-loader"</span>
                        </span></span></span>},
                        <span class="hljs-rules">{
                            <span class="hljs-rule"><span class="hljs-attribute">loader</span>:<span class="hljs-value"><span class="hljs-string">"css-loader"</span>
                        </span></span></span>},
                        <span class="hljs-rules">{
                            <span class="hljs-rule"><span class="hljs-attribute">loader</span>:<span class="hljs-value"><span class="hljs-string">"stylus-loader"</span>
                        </span></span></span>}
                    ]
                },
                <span class="hljs-rules">{
                    <span class="hljs-rule"><span class="hljs-attribute">test</span>:<span class="hljs-value">/\.vue/,
                    use:[
                        {
                            loader:<span class="hljs-string">'vue-loader'</span>
                        </span></span></span>}
                    ]
                }
            ]
        },</code></pre> 
  <p>      rules    ,  loader     ,test     ,  loader     ,use   loader   ,loader   <br/>    loader,include  loader      ,exclude        。options           。           <br/>   loader,       loader,<strong>    loader     ,    。</strong>  .styl(stylus)  ,  stylus   css, <br/> css    style-loader  html 。</p> 
  <p>  vue  , vue-loader <br/> npm install vue-loader –save-dev (–save-dev  package.json devDependencies  ) <br/>        const VueLoaderPlugin = require(‘vue-loader/lib/plugin’); <br/> plugins   new VueLoaderPlugin()  。</p> 
  <hr/> 
  <p> 、   resolve</p> 
  <pre><code>    resolve: {
        extensions: ['.js', '.vue', '.json'],
        alias: {
            'vue$':"vue/dist/vue.esm.js",
            '@':path.resolve(__dirname,"../src")
        }
    }
</code></pre> 
  <p>extensions           ,  : import vue from ‘vue.js’    import vue from ‘vue’ <br/> alias         ,         。</p> 
  <hr/> 
  <p>      !    ,    !      ! </p> 
 </div> 
</div>
                            </div>
                        </div> 
                이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Qiita API v2를 Ajax에서 사용하기위한 webpack 설정 (로컬 개발 환경 전용)에서는 Qiita의 기사 목록, 사용자 세부 정보, 기사를 '좋아요'한 사람 목록 및 재고가 있는 사람 목록을 검색할 수 있습니다. Qiita 화면에서 기사를 재고한 사람을 볼 수 없기 때문에 API를 통해 기사를 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.