出處:http://www.qingpingshan.com/jb/javascript/221105.html
基於vue2.0生成項目,一段時間都在找如何配置成多個頁面的。網上有這樣的例子相對也是比較詳細的,但是還是有些許不一樣的地方的。所以,我還是記錄下來,當然我也是參考了網上的資料的。
當然先來個vue的項目,打開命令行工具,對邊進入一個目錄下。
vue init webpack my-project
注意,node和npm的版本,npm版本最好是3.0+的。其中my-project是自定義的項目名,按照步驟一步一步來就好了,然后進入自動生成的文件夾下,下載依賴的包,然后運行,應該會打開瀏覽器的localhost:8080。
npm install
npm run dev
如果不出意外是能夠打開頁面的。
然后你就可以在項目的基礎上開心的寫組件了,那么我們應該怎么修改vue的配置,讓我們的項目是多個頁面的呢。
第一步
在index.html同級目錄下新增一個頁面,welcome.html,然后在src目錄下,添加Welcome.vue和welcom_main.js。
第二步修改配置,配置項有4個文件:
build//文件夾下 webpack.base.conf.js webpack.dev.conf.js webpack.pro.conf.js config文件夾下 index.js
其中所有的配置,有index的地方,都需要在復制一份。
比如index.js中:
build:{ play:path.resolve(__dirname, '../dist/welcome.html'), //新增的配置 }
webpack.base.conf.js中
entry:{
welcome: './src/welcome_main.js', //新增的配置 }
其他配置文件里的改動都類似。復制粘貼,然后改吧改吧就好了。
配置完后,運行下 npm run dev
不過這種方式的多頁面配置,每次新加一個頁面,必須重新配置一次,比較麻煩,如果頁面不多,倒也是可行的,但是如果隨着項目越來越多,到時候項目目錄就很不簡潔了。
所以,還有一種一勞永逸的方式。原理其實一樣的,不過是文件的配置讓文件自動生成。
項目生成方式還是一樣,接下來的配置有點不同。
第一步:安裝一個包glob 很重要的包
npm install glob --save-dev
第二步配置config下面的index.js文件
var path = require('path') var glob = require('glob') var build = { env: require('./prod.env'), //index: path.resolve(__dirname, '../dist/index.html'), assetsRoot: path.resolve(__dirname, '../dist'), assetsSubDirectory: 'static', assetsPublicPath: '/', productionSourceMap: true, productionGzip: false, productionGzipExtensions: ['js', 'css'], bundleAnalyzerReport: process.env.npm_config_report } //根據getEntry獲取所有入口主頁面 var pages = getEntry('src/pages/**/*.html'); //每個入口頁面生成一個入口添加到build中 for (var pathname in pages) { build[pathname] = path.resolve(__dirname, '../dist/' + pathname + '.html') } module.exports = { build: build,//生成的配置build dev: { env: require('./dev.env'), port: 8080, autoOpenBrowser: false, assetsSubDirectory: 'static', assetsPublicPath: '/', proxyTable: {}, cssSourceMap: false } }