第一步:使用vue-cli搭建項目(注:建議安裝淘寶鏡像,使用cnpm執行下面操作)
1.按住shift按鈕,右鍵點擊存放項目的文件夾,點擊在此處打開命令窗口。
2.在命令窗口中輸入 npm install -g vue-cli 安裝vue-cli。
3.輸入 vue init webpack vue-demo 創建一個名爲vue-demo的項目。
4.輸入 cd vue-demo 進入項目目錄。
5.輸入 npm install 安裝項目依賴。
6.npm run dev 運行項目。
7.網頁打開localhost:8080,就可以看到項目頁面,如下圖。
註釋:在執行vue init webpack vue-demo命令時候一直按回車就行,只是因爲不需要tests模塊,這一部分我選擇了no,如下圖。具體每個
配置的含義後期我會在博客中更新。
第二步:調整目錄結構
在項目目錄中的src文件夾中新建一個pages文件夾,pages文件夾中新建一個test1文件夾,將src文件夾中的assets文件夾、router文件夾、App.vue文件及main.js文件都放到新建的test1文件夾中。如下圖紅框中的文件時需要移動的。
、
接下來將vue-demo文件夾中的index.html文件也放入test1文件中。如下圖。
現在src文件中的目錄結構如下:
最後將test1文件中的main.js,改爲test1.js,將index.html文件名改爲test1.html,保證入口js文件和模板文件的名稱是一致的。
第三步:修改build文件中配置
1.修改build文件中utils文件,在文件代碼的最後面加入下面兩個函數。
// glob是webpack安裝時依賴的一個第三方模塊,還模塊允許你使用 *等符號, 例如lib/*.js就是獲取lib文件夾下的所有js後綴名的文件 var glob = require('glob') // 頁面模板 var HtmlWebpackPlugin = require('html-webpack-plugin') // 取得相應的頁面路徑,因爲之前的配置,所以是src文件夾下的pages文件夾 var PAGE_PATH = path.resolve(__dirname, '../src/pages') // 用於做相應的merge處理 var merge = require('webpack-merge') //多入口配置 // 通過glob模塊讀取pages文件夾下的所有對應文件夾下的js後綴文件,如果該文件存在 // 那麼就作爲入口處理 exports.entries = function() { var entryFiles = glob.sync(PAGE_PATH + '/*/*.js') var map = {} entryFiles.forEach((filePath) => { var filename = filePath.substring(filePath.lastIndexOf('\/') + 1, filePath.lastIndexOf('.')) map[filename] = filePath }) return map } //多頁面輸出配置 // 與上面的多頁面入口配置相同,讀取pages文件夾下的對應的html後綴文件,然後放入數組中 exports.htmlPlugin = function() { let entryHtml = glob.sync(PAGE_PATH + '/*/*.html') let arr = [] entryHtml.forEach((filePath) => { let filename = filePath.substring(filePath.lastIndexOf('\/') + 1, filePath.lastIndexOf('.')) let conf = { // 模板來源 template: filePath, // 文件名稱 filename: filename + '.html', // 頁面模板需要加對應的js腳本,如果不加這行則每個頁面都會引入所有的js腳本 chunks: ['manifest', 'vendor', filename], inject: true } if (process.env.NODE_ENV === 'production') { conf = merge(conf, { minify: { removeComments: true, collapseWhitespace: true, removeAttributeQuotes: true }, chunksSortMode: 'dependency' }) } arr.push(new HtmlWebpackPlugin(conf)) }) return arr }
2.修改build/webpack.base.conf.js的入口配置
找到下面這部分代碼
entry: { app: './src/main.js' },
改爲
entry: utils.entries(),
3.修改build文件夾中的webpack.dev.conf.js的配置
4.修改build中的webpack.prod.conf.js文件
5.將test1文件中的router文件中index.js文件做如下修改。注:因爲使用了mode:‘history’,去掉地址中不美觀的#,所以所有路由中必須加入本頁面文件名,如下圖。
第四部:測試項目
複製test1文件夾命名爲test2文件夾,將test2文件中的所有test1命名的地方全部改爲test2,注意路由路徑中的test1.html也要改爲test2.html。爲了方便區分,可以將test1.html中title改爲test1,test2.html中title改爲test2。
重新啓動項目,訪問http://localhost:8080/test1.html 和 http://localhost:8080/test2.html。如下圖。