成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

超級(jí)詳細(xì)的手寫(xiě)webpack4配置來(lái)啟動(dòng)vue2項(xiàng)目(附配置作用)

mtunique / 2013人閱讀

摘要:基礎(chǔ)目錄結(jié)構(gòu)以及各個(gè)文件的作用初始項(xiàng)目一路回車(chē),一律使用默認(rèn)的項(xiàng)目配置修改如下超級(jí)詳細(xì)的手寫(xiě)配置來(lái)啟動(dòng)項(xiàng)目附配置作用說(shuō)明用來(lái)啟動(dòng)命令這里將開(kāi)發(fā)環(huán)境的配置傳入到啟動(dòng)的中。

基礎(chǔ)目錄結(jié)構(gòu)以及各個(gè)文件的作用

初始npm項(xiàng)目 npm init

一路回車(chē),一律使用默認(rèn)的npm項(xiàng)目配置

package.json修改scripts
如下:
{
  "name": "doing-a-webpack4-vue2-pro",
  "version": "1.0.0",
  "description": "超級(jí)詳細(xì)的手寫(xiě)webpack4配置來(lái)啟動(dòng)vue2項(xiàng)目(附配置作用)",
  "main": "index.js",
  "author": "",
  "license": "ISC",
  "scripts": {
    "dev": "webpack-dev-server --config webpack/webpack.dev.config.js"
  },
  "engines": {
    "node": ">= 8.0.0",
    "npm": ">= 3.0.0"
  },
  "browserslist": [
    "> 1%",
    "last 2 versions",
    "not ie <= 8"
  ]
}
說(shuō)明:  
npm run dev 用來(lái)啟動(dòng)命令 webpack-dev-server --config webpack/webpack.dev.config.js
這里將開(kāi)發(fā)環(huán)境(development)的配置 webpack/webpack-dev-config.js 傳入到啟動(dòng)的server config中。詳情
故這里需要做兩件事情:
a. npm install webpack-dev-server -D 開(kāi)發(fā)依賴
b. 書(shū)寫(xiě) webpack.dev.config.js
書(shū)寫(xiě) webpack.dev.config.js
說(shuō)明:  
由于 webpack.dev.config.jswebpack.prod.config.js 近似,所以手寫(xiě)一個(gè) webpack.base.config.js來(lái)減少配置耦合量。
提示:base.configdev.config需要用webpack提供的 webpack-merge 來(lái)合并
故這里需要做兩件事情:
a. npm install webpack-merge -D 這個(gè)放到后面安裝config需要的依賴中一起做,稍后會(huì)寫(xiě)到
b. 書(shū)寫(xiě) webpack.base.config.js
書(shū)寫(xiě) webpack.base.config.js webpack/webpack.base.config.js
const path = require("path")
const { VueLoaderPlugin } = require("vue-loader")

const ifProd = process.env.NODE_ENV === "production" ? true : false

const config = {
  dev: {
    mode: "development",
    assetsPublcPath: "/",
    assetsSubDirectory: "./"
  },
  prod: {
    mode: "production",
    index: path.resolve(__dirname, "../dist/index.html"),
    assetsPublcPath: path.resolve(__dirname, "../dist"),
    assetsSubDirectory: "./"
  }
}
module.exports = {
  mode: ifProd ? "production" : "development",
  context: path.resolve(__dirname, "../"),
  entry: {
    app: "./src/main.js"
  },
  output: {
    filename: "[name].bulde.[hash:10].js",
    path: ifProd ? config.prod.assetsPublcPath : config.dev.assetsPublcPath
  },
  resolve: {
    extensions: [".js", ".vue"],
  },
  devServer: {
    quiet: true
  },
  module: {
    rules: [
      {
        test: /.vue$/,
        use: [
          {
            loader: "vue-loader",
          }
        ]
      },
      {
        test: /.js$/,
        exclude: /node_modules/,
        loader: "babel-loader",
        options: {
          presets: ["babel-preset-env"]
        }
      },
      {
        test: /.css$/,
        use: ["vue-style-loader", "css-loader"]
      }
    ]
  },
  plugins: [
    new VueLoaderPlugin()
  ]
}
我們可以看到,這里base.config需要的開(kāi)發(fā)依賴有:  
babel-loader@7 (7.x版本需要配合 babel-core babel-preset-env)
webpack (4.x版本需要配合 webpack-cli)
css-loader (需要配合 vue-style-loader)
vue-loader (需要配合 vue-template-compiler)
故在命令行執(zhí)行如下命令
npm install -D babel-loader@7 babel-core babel-preset-env webpack webpack-cli
npm install -D css-loader vue-style-loader vue-loader vue-template-compiler
詳細(xì)的配置說(shuō)明解釋幾天后給出
回到 webpack.dev.config.js webpack/webpack.dev.config.js
const BaseConfig = require("./webpack.base.config")

const merge = require("webpack-merge")
const HtmlWebpackPlugin = require("html-webpack-plugin")

module.exports = merge(BaseConfig, {
  plugins: [
    // https://github.com/ampedandwired/html-webpack-plugin
    // 這是一個(gè)webpack的插件來(lái)創(chuàng)建html文件渲染你的webpack生成的bundle
    new HtmlWebpackPlugin({
      // 寫(xiě)入bundle的那個(gè)index.html
      filename: "index.html",
      template: "index.html"
    })
  ]
})
我們可以看到,這里dev.config需要的開(kāi)發(fā)依賴有:  
webpack-merge (前面提到的用來(lái)將dev.config和base.config合并的依賴)
html-webpack-plugin
故在命令行執(zhí)行如下命令
npm install -D html-webpack-plugin webpack-merge
可以開(kāi)始寫(xiě)vue啦! src/main.js
我們?cè)谏厦娴?webpack.base.config.js 中寫(xiě)到了 entry: {app: "./src/main.js"}  
這就是我們的vue入口了。如下:
import Vue from "vue"; // 引入vue
import App from "./App"; // 引入組件App

new Vue ({
  el: "#app", // 掛載到index.html中的#app上
  render: h => h (App) // 用App.vue渲染
})
src/App.vue
簡(jiǎn)單的一個(gè)首頁(yè)


如上,我們需要引入vue,所以:  
npm install vue -S (自動(dòng)安裝2.x版本的vue)
最后 代碼結(jié)構(gòu):

index.html


  
    
    
    
    
    doing
  
  
    
運(yùn)行項(xiàng)目
npm run dev
源碼地址
具體的項(xiàng)目源碼地址:https://github.com/Sotyoyo/do...  
源碼與本文章稍有出入,后期會(huì)做到統(tǒng)一,希望給個(gè)star支持一下!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/53722.html

相關(guān)文章

  • 超級(jí)詳細(xì)手寫(xiě)webpack4配置來(lái)啟動(dòng)vue2項(xiàng)目配置作用

    摘要:基礎(chǔ)目錄結(jié)構(gòu)以及各個(gè)文件的作用初始項(xiàng)目一路回車(chē),一律使用默認(rèn)的項(xiàng)目配置修改如下超級(jí)詳細(xì)的手寫(xiě)配置來(lái)啟動(dòng)項(xiàng)目附配置作用說(shuō)明用來(lái)啟動(dòng)命令這里將開(kāi)發(fā)環(huán)境的配置傳入到啟動(dòng)的中。 基礎(chǔ)目錄結(jié)構(gòu)以及各個(gè)文件的作用 showImg(https://segmentfault.com/img/remote/1460000018271585?w=538&h=284); 初始npm項(xiàng)目 npm init 一...

    only_do 評(píng)論0 收藏0
  • webpack4+vue2+axios+vue-router多頁(yè)+單頁(yè)混合應(yīng)用框架

    摘要:適用于主要入口頁(yè)面生成多頁(yè),子頁(yè)面和次要頁(yè)面使用單頁(yè)形式的項(xiàng)目。文件用來(lái)存放固定的數(shù)據(jù),而文件可更加自由的處理并返回?cái)?shù)據(jù)。 VUE2的單頁(yè)應(yīng)用框架有人分享了,多頁(yè)應(yīng)用框架也有人分享了,這里分享一個(gè)單頁(yè)+多頁(yè)的混合應(yīng)用框架吧,node.js寫(xiě)了一個(gè)簡(jiǎn)單的mock服務(wù)也集成在里面,整體初現(xiàn)雛形,還有很多需要優(yōu)化和改善的地方。。。 項(xiàng)目結(jié)構(gòu) │ ├─build ...

    whatsns 評(píng)論0 收藏0
  • 關(guān)于Vue2一些值得推薦文章 -- 五、六月份

    摘要:五六月份推薦集合查看最新的請(qǐng)點(diǎn)擊集前端最近很火的框架資源定時(shí)更新,歡迎一下。蘇幕遮燎沈香宋周邦彥燎沈香,消溽暑。鳥(niǎo)雀呼晴,侵曉窺檐語(yǔ)。葉上初陽(yáng)乾宿雨,水面清圓,一一風(fēng)荷舉。家住吳門(mén),久作長(zhǎng)安旅。五月漁郎相憶否。小楫輕舟,夢(mèng)入芙蓉浦。 五、六月份推薦集合 查看github最新的Vue weekly;請(qǐng)::點(diǎn)擊::集web前端最近很火的vue2框架資源;定時(shí)更新,歡迎 Star 一下。 蘇...

    sutaking 評(píng)論0 收藏0
  • 關(guān)于Vue2一些值得推薦文章 -- 五、六月份

    摘要:五六月份推薦集合查看最新的請(qǐng)點(diǎn)擊集前端最近很火的框架資源定時(shí)更新,歡迎一下。蘇幕遮燎沈香宋周邦彥燎沈香,消溽暑。鳥(niǎo)雀呼晴,侵曉窺檐語(yǔ)。葉上初陽(yáng)乾宿雨,水面清圓,一一風(fēng)荷舉。家住吳門(mén),久作長(zhǎng)安旅。五月漁郎相憶否。小楫輕舟,夢(mèng)入芙蓉浦。 五、六月份推薦集合 查看github最新的Vue weekly;請(qǐng)::點(diǎn)擊::集web前端最近很火的vue2框架資源;定時(shí)更新,歡迎 Star 一下。 蘇...

    khs1994 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<