亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

Vue-cli3 簡(jiǎn)qian易yi教程

jemygraw / 2468人閱讀

摘要:原文地址對(duì)于沒(méi)有了解過(guò)的童鞋,建議先去看看官方的教程傳送門(mén)新版本的新特性插件使用的插件,可以很快的搭建一個(gè)項(xiàng)目的結(jié)構(gòu)。使用時(shí)直接引入即可。的界面讓管理項(xiàng)目變得更加簡(jiǎn)單。如遷移過(guò)程中有任何疑問(wèn),可以留言一起探討。

原文地址

對(duì)于沒(méi)有了解過(guò) vue-cli3 的童鞋,建議先去看看官方的教程: 傳送門(mén)
新版本的新特性 1. 插件

使用 cli 的插件,可以很快的搭建一個(gè)項(xiàng)目的結(jié)構(gòu)。如 axios 的插件 vue-cli-plugin-axios,可以自動(dòng)創(chuàng)建一個(gè)帶有 request 和 resonpose 的攔截器的 axios 的實(shí)例的文件。使用時(shí)直接引入即可。

ps:一般插件新建的文件都放在 src/plugin 文件夾下。
2. 減少配置

vue-cli3 中內(nèi)置了很多 webpack 的配置,如 babel,各個(gè) css 預(yù)編譯器,幾乎只需要安裝完相對(duì)應(yīng)的 loader 即可開(kāi)箱即用,無(wú)需過(guò)多的配置即可直接開(kāi)發(fā)。

3. 圖形化

自帶的 GUI 界面直接將上手成本置為 0。在終端中運(yùn)行命令: vue ui 打開(kāi)瀏覽器中就可以愉快的使用 GUI 進(jìn)行項(xiàng)目管理。

vue-cli2 的遷移 src

直接覆蓋即可。

static

直接復(fù)制到新項(xiàng)目的 public/static 即可。

index.html

復(fù)制覆蓋至 public 目錄下的 index.html 即可。

CDN 配置

舊版的可以看這里:記一次使用 vue-admin-template 的優(yōu)化歷程

新版的基本不用怎么修改即可直接使用:

const webpack = require("webpack")
const path = require("path")
const HtmlWebpackIncludeAssetsPlugin = require("html-webpack-include-assets-plugin")
const Vue = require("vue")
const Buefy = require("buefy/package.json")
const AV = require("leancloud-storage")
const externals = {
    // "element-ui":"ELEMENT"
}
const assets = [
    { path: "https://unpkg.com/buefy@0.6.6/lib/buefy.min.css", type: "css"}
]
console.log(process.env.NODE_ENV, AV.version)

const isProd = process.env.NODE_ENV === "production"

if (isProd) {
    externals["vue"] = "Vue"
    externals["buefy"] = "Buefy"
    externals["leancloud-storage"] = "AV"
    // externals["element-ui"] = "ELEMENT"
    assets.push(
        { path: `https://lib.baomitu.com/vue/${Vue.version}/vue.min.js`, type: "js" },
        { path: `https://unpkg.com/buefy@${Buefy.version}/lib/index.js`, type: "js" },
        { path: `https://cdn.jsdelivr.net/npm/leancloud-storage@${AV.version}/dist/av-min.js`, type: "js" },
    )
}

const plugins = [{
    name: "html-assets",
    func: HtmlWebpackIncludeAssetsPlugin,
    options: {
        assets,
        // 是否在 webpack 注入的 js 文件后新增?true 為 append, false 為 prepend。
        // 生產(chǎn)環(huán)境中,這些 js 應(yīng)該先加載。
        append: !isProd,
        publicPath: "",
    }
}, {
    name: "dll",
    func: webpack.DllReferencePlugin,
    options: {
        context: path.join(__dirname, "../"),
        manifest: require("../configs/vendor-manifest.json")
    }
}]

module.exports = {
    externals,
    plugins
}
DLL Plugin

舊版的可以看這里:記一次使用 vue-admin-template 的優(yōu)化歷程

主要還是 webpack4 只需要配置一個(gè) mode: "production" 即可,無(wú)需再額外配置繁瑣的 webpack.optimization。

package.json 中添加新的命令:

{
    "build:dll": "webpack --config configs/dll.js --mode production"
}

再安裝新的命令包,讓 yarn/npm 可以直接使用 webpack 命令:

$ yarn add -D webpack-command

新增 configs/dll.js 文件:

const webpack = require("webpack");
const path = require("path");

const utils = {
    assetsPath: function (_path) {
        const assetsSubDirectory = process.env.NODE_ENV === "production"
            // 生產(chǎn)環(huán)境下的 static 路徑
            ? "static"
            // 開(kāi)發(fā)環(huán)境下的 static 路徑
            : "static"
        
        return path.posix.join(assetsSubDirectory, _path)
    }
}

function resolve(dir) {
    return path.join(__dirname, "..", dir)
}
const vendors = [
    // 這里填寫(xiě)需要打進(jìn) dll 的包名。
];
const context = path.join(__dirname, "../")
const webpackConfig = {
    // 無(wú)需配置 webpack.optimization
    mode: "production",
    context,
    output: {
        path: path.join(__dirname, "../public/js/"),
        filename: "[name].dll.js",
        library: "[name]_[hash]",
    },
    entry: {
        "vendor": vendors,
    },
    plugins: [
        new webpack.DllPlugin({
            context,
            path: path.join(__dirname, ".", "[name]-manifest.json"),
            name: "[name]_[hash]",
        })
    ],
    module: {
        // 如用不上可以刪除。
        rules: [{
            test: /.js$/,
            loader: "babel-loader",
            include: [resolve("src"), resolve("test"), resolve("node_modules/webpack-dev-server/client")]
        },
        {
            test: /.(png|jpe?g|gif|svg)(?.*)?$/,
            loader: "url-loader",
            options: {
                limit: 10000,
                name: utils.assetsPath("img/[name].[hash:7].[ext]")
            }
        },
        {
            test: /.(mp4|webm|ogg|mp3|wav|flac|aac)(?.*)?$/,
            loader: "url-loader",
            options: {
                limit: 10000,
                name: utils.assetsPath("media/[name].[hash:7].[ext]")
            }
        },
        {
            test: /.(woff2?|eot|ttf|otf)(?.*)?$/,
            loader: "url-loader",
            options: {
                limit: 10000,
                name: utils.assetsPath("fonts/[name].[hash:7].[ext]")
            }
        }
        ]
    }
};

module.exports = webpackConfig
其他配置

vue-cli3 的其他所有 webpack 都可以通過(guò) vue.config.js 進(jìn)行配置,需要手動(dòng)新建。

vue.config.js

const {externals, plugins} = require("./config/cdn")
module.exports = {
    baseUrl: process.env.NODE_ENV === "production"
        ? "/PRODUCTION/"
        : "/",
    chainWebpack: config => {
        // use webpack-chain instead of webpack.config
        
        // 注入 cdn 和 dll 插件
        plugins.forEach(plugin => {
            config.plugin(plugin.name)
                .use(plugin.func, [plugin.options])
        })
        // 使用 externals.
        config.externals(externals)
    }
}

推薦在 vue.config.js 中使用 webpack-chain 進(jìn)行配置

Pug 配置

安裝尤大的 pug-plain-loader: yarn add -D pug-plain-loader

chainWebpack 添加:

config.module
    .use("pug").test(/.pug$/)
    .end()
Sass 配置

只需要安裝 sass-loader 即可。

如需使用 fast-sass-loader 代替,則需要修改配置:
;["scss", "sass"].forEach(style => {
    ["vue", "vue-modules", "normal-modules", "normal"].forEach(one => {
        config.module.rule(style)
            .oneOf(one)
            .use("sass-loader")
            .loader("fast-sass-loader")
            .end()
    })
})
Vux 配置

未研究出,卒。

總結(jié)

不得不說(shuō),新版的 cli 真的很方便新手,配合 webpack-chain 也可以清晰明了的去配置 webpack,只是兼容性需要一步步去摸索。GUI 的界面讓管理 vue 項(xiàng)目變得更加簡(jiǎn)單。

如遷移過(guò)程中有任何疑問(wèn),可以留言一起探討。

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

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

相關(guān)文章

  • 前端技術(shù)棧---Vue(1)安裝與初始化

    摘要:安裝與初始化過(guò)程中遇到的坑,以此記錄。安裝依賴(lài)于,地址對(duì)應(yīng)自己的系統(tǒng)選擇相應(yīng)的版本即可,這里推薦下載版本直接安裝。至此,項(xiàng)目構(gòu)建成功,如果遺漏或錯(cuò)誤,懇請(qǐng)指出并加以修改。 vue安裝與初始化過(guò)程中遇到的坑,以此記錄。 1.安裝vue依賴(lài)于node.js,地址:http://nodejs.cn/download/showImg(https://segmentfault.com/img/b...

    shinezejian 評(píng)論0 收藏0
  • 數(shù)據(jù)庫(kù)分組查詢(xún)最大值的問(wèn)題

    摘要:現(xiàn)在執(zhí)行如上查詢(xún),結(jié)果為使用內(nèi)連接和左連接的兩條語(yǔ)句,執(zhí)行結(jié)果保持一致,都能顯示出各組最大值的多行記錄。子句常與聚集函數(shù)聯(lián)用,此時(shí)聚集函數(shù)以基本組為計(jì)算對(duì)象。 這里探討了分組查詢(xún)最大值(group-wise-max)的問(wèn)題。涉及到 SQL 查詢(xún)語(yǔ)句中的 GROUP BY 子句及連接(JOIN)操作。 問(wèn)題 本文緣起于 SegmentFault上 的一個(gè)問(wèn)題:http://segment...

    MkkHou 評(píng)論0 收藏0
  • Python “黑魔法” 之 Encoding & Decoding

    摘要:我可以明確告訴你這不是,但它可以用解釋器運(yùn)行。這種黑魔法,還要從說(shuō)起。提案者設(shè)想使用一種特殊的文件首注釋?zhuān)糜谥付ùa的編碼。暴露了一個(gè)函數(shù),用于注冊(cè)自定義編碼。所謂的黑魔法其實(shí)并不神秘,照貓畫(huà)虎定義好相應(yīng)的接口即可。 首發(fā)于我的博客,轉(zhuǎn)載請(qǐng)注明出處 寫(xiě)在前面 本文為科普文 本文中的例子在 Ubuntu 14.04 / Python 2.7.11 下運(yùn)行成功,Python 3+ 的接...

    鄒強(qiáng) 評(píng)論0 收藏0

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

0條評(píng)論

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