久久久久在线观看_又色又爽又黄的免费视频播放_一区中文字幕_日韩电影在线播放

今日焦點(diǎn) 焦點(diǎn)資訊 營(yíng)銷之道 企業(yè)報(bào)道 淘寶運(yùn)營(yíng) 網(wǎng)站建設(shè) 軟件開發(fā) 400電話
  當(dāng)前位置: 首頁(yè) » 資訊 » 軟件開發(fā) » 正文

vue-cli開發(fā)多頁(yè)面應(yīng)用的簡(jiǎn)單示例

放大字體  縮小字體 發(fā)布日期:2018-02-28  來(lái)源:企業(yè)800網(wǎng)  作者:新格網(wǎng)  瀏覽次數(shù):455  【去百度看看】
核心提示:通過(guò) vue-cli 創(chuàng)建的項(xiàng)目,默認(rèn)是開發(fā)單頁(yè)應(yīng)用。如果希望開發(fā)多頁(yè)面,需要調(diào)整部分腳本的配置。

創(chuàng)建項(xiàng)目

使用 vue-cli 創(chuàng)建一個(gè)項(xiàng)目

$ vue init webpack vue-multiple-demo

根據(jù)控制臺(tái)的提示,填寫相關(guān)信息即可。創(chuàng)建完成后,進(jìn)入該項(xiàng)目根目錄并安裝依賴。

$ cd vue-multiple-demo
$ npm install
由于是開發(fā)多頁(yè)面應(yīng)用,該工程就沒(méi)有配置 vue-router

最簡(jiǎn)示例

通過(guò) vue-cli 創(chuàng)建的項(xiàng)目,默認(rèn)是開發(fā)單頁(yè)應(yīng)用。如果希望開發(fā)多頁(yè)面,需要調(diào)整部分腳本的配置。

入口

src 目錄下新建一個(gè) demo.js,為方便起見,直接將 main.js 中的內(nèi)容復(fù)制過(guò)去。然后,修改 build/webpack.base.conf.jsentry 為多個(gè)。

entry: {
  app: './src/main.js',
  demo: './src/demo.js'
},

模板

在工程根目錄下新建一個(gè) demo.html 文件,同樣將 index.html 的內(nèi)容復(fù)制過(guò)去。為了區(qū)分開來(lái),只編輯下 <title> 的內(nèi)容。

<title>demo</title>

發(fā)布地址

config/index.jsbuild 配置下,新增一條記錄。

index: path.resolve(__dirname, '../dist/index.html'),
demo: path.resolve(__dirname, '../dist/demo.html'),

生產(chǎn)環(huán)境配置

調(diào)整 build/webpack.prod.conf.jsplugins 中,關(guān)于 html 的配置。

修改

new HtmlWebpackPlugin({
  filename: config.build.index,
  template: 'index.html',
  inject: true,
  minify: {
    removeComments: true,
    collapseWhitespace: true,
    removeAttributeQuotes: true
    // more options:
    // https://github.com/kangax/html-minifier#options-quick-reference
  },
  // necessary to consistently work with multiple chunks via CommonsChunkPlugin
  chunksSortMode: 'dependency',
  chunks: ['manifest', 'vendor', 'app']
}),

這里主要有兩處改動(dòng)

  • filename 直接寫死

  • 為防止加載不必要的 js,添加 chunks 配置。

新增

new HtmlWebpackPlugin({
  filename: config.build.demo,
  template: 'demo.html',
  inject: true,
  minify: {
    removeComments: true,
    collapseWhitespace: true,
    removeAttributeQuotes: true
    // more options:
    // https://github.com/kangax/html-minifier#options-quick-reference
  },
  // necessary to consistently work with multiple chunks via CommonsChunkPlugin
  chunksSortMode: 'dependency',
  thunks: ['manifest', 'vendor', 'demo']
}),

預(yù)覽效果

這里不啟動(dòng)本地服務(wù),所以需要修改下靜態(tài)資源的加載路徑,即將 config/index.jsbuild->assetsPublicPath 修改為 ./

assetsPublicPath: './',

構(gòu)建應(yīng)用

$ npm run build

直接打開 dist 目錄中的 html 文件,即可預(yù)覽效果。

小結(jié)

至此,開發(fā)多頁(yè)面的最簡(jiǎn)示例就完成了。

進(jìn)一步優(yōu)化

實(shí)際開發(fā)中,頁(yè)面的數(shù)量較多,因而需要批量處理以下配置。

文件目錄

源碼部分 src 的目錄結(jié)構(gòu)如下

  • assets

    • logo.png

  • components

    • HelloWorld.vue

  • entries

    • index.js

    • list.js

  • templates

    • index.html

    • list.html

按照約定

  • entries 用于存放頁(yè)面入口的 js 文件

  • templates 用于存放頁(yè)面的模板 html 文件

讀取目錄

為方便讀取頁(yè)面目錄,這里使用 glob 擴(kuò)展一個(gè)方法。

$ npm install glob --save-dev

安裝完依賴后,在 build/utils.js 中添加方法

const glob = require('glob')

// 遍歷指定目錄下的文件
exports.getEntries = (dirPath) => {
  let filePaths = glob.sync(dirPath);
  let entries = {};
  filePaths.forEach(filePath => {
    let filename = filePath.match(/(\w+)\.[html|js]+/)[1];
    entries[filename] = filePath;
  })
  return entries;
}

修改配置

build/webpack.base.conf.js

entry: utils.getEntries('./src/entries/*.js'),

build/webpack.base.prod.conf.js

刪除原有的 HtmlWebpackPlugin 相關(guān)配置,在文件結(jié)束之前遍歷添加相關(guān)配置即可。

const pages = utils.getEntries('./src/templates/*.html');
for(let page in pages) {
  let fileConfig = {
    filename: path.resolve(__dirname, '../dist/pages/' + page + '.html'),
    template: pages[page],
    inject: true,
    minify: {
      removeComments: true,
      collapseWhitespace: true,
      removeAttributeQuotes: true
    },
    chunksSortMode: 'dependency',
    thunks: ['manifest', 'vendor']
  };
  fileConfig.thunks.push(page);
  // 添加插件配置
  webpackConfig.plugins.push(new HtmlWebpackPlugin(fileConfig));
}

config/index.js

由于輸出的地址不在這里配置,之前的刪不刪除都不影響。但是,調(diào)整了目錄結(jié)構(gòu),頁(yè)面中加載靜態(tài)資源的路徑也要做出調(diào)整。

assetsPublicPath: '../',

構(gòu)建并預(yù)覽

$ npm run build

構(gòu)建完成后,直接使用瀏覽器打開 dist 目錄下的 html 文件即可預(yù)覽效果。

總結(jié)

簡(jiǎn)單總結(jié)以下,使用 vue-cli 開發(fā)多頁(yè)面應(yīng)用的幾個(gè)關(guān)鍵點(diǎn)。

  • 多入口

  • 多個(gè) HtmlWebpackPlugin

  • 靜態(tài)資源的路徑

此文中介紹的配置,不一定適用于所有的開發(fā)場(chǎng)景。優(yōu)化更多進(jìn)一步的細(xì)節(jié),還是要在實(shí)際開發(fā)中不斷實(shí)踐。

相關(guān)推薦:

vue構(gòu)建多頁(yè)面應(yīng)用實(shí)例代碼分享

Vue-cli創(chuàng)建單頁(yè)面到多頁(yè)面的方法實(shí)例代碼

vue cli重構(gòu)多頁(yè)面腳手架實(shí)例分享

以上就是vue-cli開發(fā)多頁(yè)面應(yīng)用的簡(jiǎn)單示例的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!

 
關(guān)鍵詞: vue-cli,簡(jiǎn)單,用的
長(zhǎng)春  短信群發(fā)  吉林省  紅視窗  中國(guó)  長(zhǎng)春市  玉米  長(zhǎng)春網(wǎng)站建設(shè)  網(wǎng)站  振華  設(shè)備  設(shè)計(jì)  吉林  廣州  撲克  聯(lián)合聲明  敘利亞  美國(guó)  美國(guó)白宮  化學(xué)武器  指示  塞內(nèi)加爾  新聞中心  記者會(huì)  內(nèi)蒙古  白宮  化武  長(zhǎng)春上門維修電腦  消費(fèi)者權(quán)益  強(qiáng)臺(tái)風(fēng)  北京市  滿洲里  中消協(xié)  日本  非洲  中國(guó)政府  圓桌  敘政府  國(guó)家元首  毒品  小雨  臺(tái)風(fēng)  消費(fèi)者  海外網(wǎng)  中非  中非合作論壇  經(jīng)濟(jì)  大阪  突擊步槍  重慶市  俄羅斯  步槍  網(wǎng)站建設(shè)  長(zhǎng)春上門做系統(tǒng)  長(zhǎng)春電腦上門維修  黨委書記  北斗導(dǎo)航  長(zhǎng)春上門修電腦  長(zhǎng)春北大青鳥  售前咨詢技巧  政治  黨委  龍頭企業(yè)  位置服務(wù)  中國(guó)電影  中國(guó)智能建筑節(jié)  軍民  產(chǎn)業(yè)園  制造  侯建國(guó),質(zhì)量,中國(guó)特色社會(huì)主義  中國(guó)芯  特朗普,貿(mào)易戰(zhàn),美國(guó)  特朗普  f-35  長(zhǎng)春國(guó)貿(mào)  AJAX  PHP  中國(guó)移動(dòng)  XML  政府  州長(zhǎng)  RSS  美國(guó)人  一帶一路  中國(guó)軍網(wǎng)  發(fā)言人  塞申斯  小米  今日頭條  微博  發(fā)布會(huì)  運(yùn)載火箭  航母  彈道導(dǎo)彈  戰(zhàn)斗機(jī)  銀河  觀察者網(wǎng)  檢察官  中國(guó)市場(chǎng)  英國(guó)皇家海軍 
 
[ 資訊搜索 ]  [ 加入收藏 ]  [ 告訴好友 ]  [ 打印本文 ]  [ 違規(guī)舉報(bào) ]  [ 關(guān)閉窗口 ]

 
0條 [查看全部]  相關(guān)評(píng)論

 
網(wǎng)站首頁(yè) | 關(guān)于我們 | 聯(lián)系方式 | 使用協(xié)議 | 版權(quán)隱私 | 網(wǎng)站地圖 | 排名推廣 | 廣告服務(wù) | 積分換禮 | 網(wǎng)站留言 | RSS訂閱 | 吉ICP備19006030號(hào)-4
企業(yè)800網(wǎng) · 提供技術(shù)支持