Webpack4、iView、Vue開發環境的搭建


導讀

項目使用了 yarn ,一個快速、可靠、安全的依賴管理工具。yarn 是一個類似於npm的包管理工具,它是由 facebook 推出並開源,它在速度,離線模式,版本控制的方面具有獨到的優勢。此項目以此為基礎,寫一個購物商城的單頁面應用,下面記錄了項目開始前開發環境的簡單搭建過程。

更多信息和項目基礎搭建請點擊查看 webpack-iview-vue

查看最終的效果請點擊查看 View online。喜歡就給個 star 吧😄

詳細內容

  • 創建一個文件夾
  • 進入該文件並初始化:yarn init
  • 安裝webpack和webpack-cli:yarn add webpack webpack-cli -D
  • 安裝vue:yarn add vue
  • 安裝:yarn add vue-loader less-loader postcss-loader css-loader style-loader url-loader file-loader html-webpack-plugin babel-loader babel-core babel-preset-env webpack-dev-server -D
  • 升級upgrade vue-template-compiler到和vue一致的版本(非必須):yarn upgrade vue-template-compiler@^2.5.16 -D
  • 在根目錄下創建 index.html 文件:
    <!DOCTYPE html>
      <html lang="en">
      <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>商城</title>
      </head>
      <body>
        <!-- 對應 main.js 中的掛載目標 -->
        <div id="app"></div>
      </body>
    </html>
  • 根路徑下創建文件夾src(放置網頁基礎文件,並在其中創建文件app.vue:
    <template>
      <div class="textStyle">{{ textData }}</div>
    </template>
    
    <script>
    export default {
      data() {
        return {
          textData: 'Hello world'
        }
      }
    }
    </script>
    
    <style>
    .textStyle {
      background-color: aquamarine;
    }
    </style>
  • 在src文件夾下創建入口文件main.js:
    import Vue from 'vue';
    import App from './app.vue';
    new Vue({ // 創建 vue 實例
      el: '#app', // 提供一個在頁面上已經存在的 DOM 元素作為 Vue 實例掛載目標
      render: (h) => h(App) // 聲明了 html 中的內容
    })
    
  • 根目錄下創建build文件夾(放置配置文件,並在其下創建webpack.config.js文件:
    const path = require('path'); // node.js 中的基本包,用於處理路徑
    const VueLoaderPlugin = require('vue-loader/lib/plugin');
    
    module.exports = {
      entry: path.join(__dirname,'../src/main.js'), // path.jion()將兩個參數代表的路徑相加組合起來,__dirname代表當前文件所在目錄
      output: {
        filename: 'bundle.js', //輸出文件的文件名
        path: path.join(__dirname,'../dist') // 輸出文件所在目錄
      },
      module: {
        rules: [
          {
            test: /.vue$/,
            loader: 'vue-loader'
          },
          {
            test: /.css$/,
            use: [
              'style-loader', // 為 css 創建 style 標簽並置入其中插入頁面
              'css-loader', // 處理 css
              'postcss-loader', // 瀏覽器兼容問題
            ]
          },
          {
            test: /\.less/,
            use: [
              'style-loader',
              'css-loader',
              'postcss-loader',
              'less-loader' // loader 由下往上依次開始處理
            ]
          },
          {
            test: /\.(jpg|png|gif|svg|jpeg)$/,
            use: [
              {
                loader: 'url-loader',
                options: { // 配置參數
                  limit: 1024 // 比較標准,小於標准的圖片轉換為 base64 代碼
                }
              }
            ]
          }
        ]
      },
      plugins: [
      // Vue-loader在15.*之后的版本都是 vue-loader的使用都是需要伴生 VueLoaderPlugin的
      new VueLoaderPlugin()
      ]
    }
    
  • 在package.json添加以下內容:
    "dev": "webpack --config build/webpack.config.js --mode development",
    "build": "webpack --config build/webpack.config.js --mode production"
    //webpack 用於執行webpack默認位置默認名稱的配置文件webpack.config.js,其后跟的參數 --config 用於對修改名稱或位置后的配置文件的運行
    //--mode 后指定模式,development模式下的文件不壓縮
    
  • 在根目錄增加文件postcss.config.js:
    module.exports = { 
      plugins: { 
        'autoprefixer': {browsers: 'last 5 version'} 
      } 
    }
    
  • html-webpack-plugin:
    // 在webpack.config.js下引入html-webpack-plugin
    const HTMLWebpackPlugin = require('html-webpack-plugin');
    並在其plugins下增加:
    new HTMLWebpackPlugin({ //創建 .html 並自動引入打包后的文件
      template: 'index.html', // 參照最初創建的 .html 來生成 .html
      inject: true
    })
    
  • 支持ES6:
    // 並在webpack.config.js里配置
    {
      text: /\.js$/,
      use: [
        {
          loader: 'babel-loader',
          options: {
            presets: ['env']
          }
        }
      ]
    }
    
  • 在webpack.config.js中與entry同級處設置:devtool: 'cheap-module-eval-source-map',
  • webpack.config.js 重新命名為 webpack.base.config.js
  • 修改webpack.base.config.js如下:
     "dev": "webpack-dev-server --base ./dist --open --inline --hot --compress --config build/webpack.base.config.js --mode development",
    "build": "webpack --config build/webpack.base.config.js --mode production"
    
  • 寫在最后

    在此記錄了項目開發環境的初步搭建,由於項目寫起來之后,書寫的地方來回切換不利於記錄,所以記錄的文本比較混亂,並不再繼續記錄開發的詳細步驟,若是文中有什么錯誤,還望大家指出。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM