亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

Vue工程模板文件 webpack打包配置方法

2019-11-19 14:38:41
字體:
來源:轉載
供稿:網友

1、github

github地址:https://github.com/MengFangui/VueProjectTemplate

2、webpack配置

(1)基礎配置webpack.base.config.js

const path = require('path');//處理共用、通用的jsconst webpack = require('webpack');//css單獨打包const ExtractTextPlugin = require('extract-text-webpack-plugin');module.exports = { //入口文件 entry: {  main: './src/main',  vendors: './src/vendors' }, output: {  path: path.join(__dirname, './dist') }, module: {  rules: [   //vue單文件處理   {    test: //.vue$/,    use: [{     loader: 'vue-loader',     options: {      loaders: {       less: ExtractTextPlugin.extract({        //minimize 啟用壓縮        use: ['css-loader?minimize', 'autoprefixer-loader', 'less-loader'],        fallback: 'vue-style-loader'       }),       css: ExtractTextPlugin.extract({        use: ['css-loader', 'autoprefixer-loader', 'less-loader'],        fallback: 'vue-style-loader'       })      }     }    }]   },   //iview文件夾下的js編譯處理   {    test: /iview//.*?js$/,    loader: 'babel-loader'   },   //js編譯處理   {    test: //.js$/,    loader: 'babel-loader',    exclude: /node_modules/   },   //css處理   {    test: //.css$/,    use: ExtractTextPlugin.extract({     //minimize 啟用壓縮     use: ['css-loader?minimize', 'autoprefixer-loader'],     fallback: 'style-loader'    })   },   //less處理   {    test: //.less/,    use: ExtractTextPlugin.extract({     use: ['css-loader?minimize', 'autoprefixer-loader', 'less-loader'],     fallback: 'style-loader'    })   },   //圖片處理   {    test: //.(gif|jpg|png|woff|svg|eot|ttf)/??.*$/,    loader: 'url-loader?limit=1024'   },   //實現資源復用   {    test: //.(html|tpl)$/,    loader: 'html-loader'   }  ] }, resolve: {  //自動擴展文件后綴名,意味著我們require模塊可以省略不寫后綴名  extensions: ['.js', '.vue'],  //模塊別名定義,方便后續直接引用別名,無須多寫長長的地址  alias: {   'vue': 'vue/dist/vue.esm.js'  } }};

(2)開發環境配置webpack.dev.config.js

//處理共用、通用的jsconst webpack = require('webpack');//處理html模板const HtmlWebpackPlugin = require('html-webpack-plugin');//css單獨打包const ExtractTextPlugin = require('extract-text-webpack-plugin');//合并配置const merge = require('webpack-merge');const webpackBaseConfig = require('./webpack.base.config.js');//fs模塊用于對系統文件及目錄進行讀寫操作const fs = require('fs');//編譯前用node生成一個env.js的文件,用來標明當前是開發(development)還是生產環境(production)fs.open('./src/config/env.js', 'w', function(err, fd) { const buf = 'export default "development";'; fs.write(fd, buf, 0, buf.length, 0, function(err, written, buffer) {});});module.exports = merge(webpackBaseConfig, { //打包代碼的同時生成一個sourcemap文件,并在打包文件的末尾添加//# souceURL,注釋會告訴JS引擎原始文件位置 devtool: '#source-map', output: {  //線上環境路徑  publicPath: '/dist/',  filename: '[name].js',  chunkFilename: '[name].chunk.js' }, plugins: [  //css單獨打包  new ExtractTextPlugin({   filename: '[name].css',   allChunks: true  }),  //通用模塊編譯  new webpack.optimize.CommonsChunkPlugin({   //提取的公共塊的塊名稱(chunk)   name: 'vendors',   //生成的通用的文件名   filename: 'vendors.js'  }),  new HtmlWebpackPlugin({   //輸出文件   filename: '../index.html',   //模板文件   template: './src/template/index.ejs',   //不插入生成的 js 文件,只是單純的生成一個 html 文件   inject: false  }) ]});

(3)線上環境配置webpack.prod.config.js

//處理共用、通用的jsconst webpack = require('webpack');//處理html模板const HtmlWebpackPlugin = require('html-webpack-plugin');//css單獨打包const ExtractTextPlugin = require('extract-text-webpack-plugin');//合并配置const merge = require('webpack-merge');const webpackBaseConfig = require('./webpack.base.config.js');//fs模塊用于對系統文件及目錄進行讀寫操作const fs = require('fs');//編譯前用node生成一個env.js的文件,用來標明當前是開發(development)還是生產環境(production)fs.open('./src/config/env.js', 'w', function (err, fd) { const buf = 'export default "production";'; fs.write(fd, buf, 0, buf.length, 0, function (err, written, buffer){});});module.exports = merge(webpackBaseConfig, { output: {  //線上環境路徑  publicPath: 'dist/',  filename: '[name].[hash].js',  chunkFilename: '[name].[hash].chunk.js' }, plugins: [  new ExtractTextPlugin({   //css單獨打包   filename: '[name].[hash].css',   allChunks: true  }),  //通用模塊編譯  new webpack.optimize.CommonsChunkPlugin({   //提取的公共塊的塊名稱(chunk)   name: 'vendors',   //生成的通用的文件名   filename: 'vendors.[hash].js'  }),  new webpack.DefinePlugin({   'process.env': {    NODE_ENV: '"production"'   }  }),  //js壓縮  new webpack.optimize.UglifyJsPlugin({   compress: {    warnings: false   }  }),  new HtmlWebpackPlugin({   //輸出文件   filename: '../index_prod.html',   //模板文件   template: './src/template/index.ejs',   //不插入生成的 js 文件,只是單純的生成一個 html 文件   inject: false  }) ]});

(4)package.json文件

{ "name": "iview-project", "version": "2.1.0", "description": "A base project with Vue.js2、Vue-Router、webpack2 and with iView2.", "main": "index.js", "scripts": { "init": "webpack --progress --config webpack.dev.config.js", "dev": "webpack-dev-server --content-base ./ --open --inline --hot --compress --history-api-fallback --config webpack.dev.config.js", "build": "webpack --progress --hide-modules --config webpack.prod.config.js" }, "repository": { "type": "git", "url": "git+https://github.com/iview/iview-project.git" }, "author": "Aresn", "license": "MIT", "dependencies": { "vue": "^2.2.6", "vue-router": "^2.2.1", "iview": "^2.0.0-rc.8" }, "devDependencies": { "autoprefixer-loader": "^2.0.0", "babel": "^6.23.0", "babel-core": "^6.23.1", "babel-loader": "^6.2.4", "babel-plugin-transform-runtime": "^6.12.0", "babel-preset-es2015": "^6.9.0", "babel-runtime": "^6.11.6", "css-loader": "^0.23.1", "extract-text-webpack-plugin": "^2.0.0", "file-loader": "^0.8.5", "html-loader": "^0.3.0", "html-webpack-plugin": "^2.28.0", "less": "^2.7.1", "less-loader": "^2.2.3", "style-loader": "^0.13.1", "url-loader": "^0.5.7", "vue-hot-reload-api": "^1.3.3", "vue-html-loader": "^1.2.3", "vue-loader": "^11.0.0", "vue-style-loader": "^1.0.0", "vue-template-compiler": "^2.2.1", "webpack": "^2.2.1", "webpack-dev-server": "^2.4.1", "webpack-merge": "^3.0.0" }, "bugs": { "url": "https://github.com/iview/iview-project/issues" }, "homepage": "https://www.iviewui.com"}

ps:下面看下如何使用webpack打包vue項目?

1、安裝nodejs:使用webpack打包需要用到npm,npm(node package manager)是nodejs的包管理器,用于node插件管理(包括安裝、卸載、管理依賴等),所以需要先下載安裝nodejs,安裝完成后使用npm -v查看是否安裝完成;

2、安裝cnpm(此步驟為非必須):因為npm安裝插件是從國外的網站上下載的,由于網絡影響,很容易就出現異常,cnpm是一個完整 npmjs.org 鏡像,你可以用此代替官方版本(只讀),同步頻率目前為 10分鐘 一次以保證盡量與官方服務同步。 使用npm install -g cnpm --registry=https://registry.npm.taobao.org安裝,之后可以使用cnpm來代替npm;

3、全局安裝vue-cli腳手架,npm install -g vue-cli (不加-g安裝到當前目錄;加-g安裝到系統的node目錄),安裝完成后使用vue -V查看;

4、創建一個基于webpack模板的新項目(下載模板);使用 vue init webpack my-project(項目文件夾名);接下來進行一系列的設置后,就下載好了一個vue模板了;

5、cd my-project 進入項目文件夾;使用npm install命令安裝package.json文件里的依賴,會根據前端項目的依賴關系下載好相關的組件,存在項目目錄的node_modules文件夾下;

6、安裝node_modules依賴后,使用命令 npm run dev 啟動項目(dev配置在package.json文件中)。

總結

以上所述是小編給大家介紹的Vue工程模板文件 webpack打包,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲第一中文字幕在线观看| 亚洲在线免费视频| 中文字幕欧美日韩| 国产专区欧美专区| 久久伊人精品视频| 欧美大胆a视频| 国产日韩欧美日韩| 国产一区二区成人| 中文字幕国产亚洲2019| 亚洲欧洲激情在线| 精品小视频在线| 日本国产高清不卡| 操人视频在线观看欧美| 日韩精品黄色网| 久久久久久久久久久免费| 欧美猛交免费看| 人人澡人人澡人人看欧美| 91国自产精品中文字幕亚洲| 国产精品一区二区久久| 国产精品一区专区欧美日韩| 欧美日韩精品二区| 日韩欧美第一页| 亚洲嫩模很污视频| 亚洲精品一区二区久| 九九热精品视频在线播放| 国产精品久久久久久久久久ktv| 亚洲国产欧美精品| 欧美国产乱视频| xxxx欧美18另类的高清| 黄色一区二区在线| 日本国产欧美一区二区三区| 亚洲深夜福利视频| 国产视频精品免费播放| 97欧美精品一区二区三区| 欧美日韩精品在线视频| 最近2019中文字幕在线高清| 91精品视频一区| 亚洲欧美综合图区| 成人美女免费网站视频| 国产成人在线一区二区| 久久久国产在线视频| 亚洲综合中文字幕在线| 欧美成人精品h版在线观看| 91人人爽人人爽人人精88v| 日韩在线视频网| 久久久www成人免费精品| 亚洲精品综合精品自拍| 国产一区二区三区在线播放免费观看| 成人福利网站在线观看11| 97精品久久久中文字幕免费| 国产成人免费91av在线| www亚洲精品| 欧美激情久久久久久| 日韩高清免费观看| 亚洲第一天堂av| 98精品在线视频| 国产精品久久久久久av福利软件| 国产精品爽黄69天堂a| 午夜精品久久久久久久久久久久久| 欧美视频在线观看免费网址| 久久精品亚洲热| 国产精品色午夜在线观看| 欧美激情精品久久久久久| 亚洲欧美日本另类| 欧美做受高潮1| 亚洲欧美国产另类| 国产成人精彩在线视频九色| 国产一区二区三区在线看| 成人激情电影一区二区| 亚洲国产成人一区| 日韩美女视频免费在线观看| 在线亚洲男人天堂| 欧美精品在线极品| 久久国产精品免费视频| 精品日韩视频在线观看| 欧洲亚洲免费在线| 欧美激情视频播放| 中文字幕亚洲二区| 国产精品精品久久久| 亚洲人成77777在线观看网| 亚洲a级在线观看| 九九热99久久久国产盗摄| 亚洲一区制服诱惑| 国产成人欧美在线观看| 欧美在线一级va免费观看| 伊人久久精品视频| 国产精品黄色影片导航在线观看| 亚洲毛片在线免费观看| 国a精品视频大全| 亚洲国产成人在线播放| 97人洗澡人人免费公开视频碰碰碰| 91禁国产网站| 91禁国产网站| 97欧美精品一区二区三区| 久久视频国产精品免费视频在线| 色偷偷88888欧美精品久久久| 亚洲第一综合天堂另类专| 欧美国产日韩xxxxx| 国产精品高清免费在线观看| 亚洲自拍小视频免费观看| 亚洲第一精品电影| 国内精品一区二区三区四区| 日韩成人在线观看| 亚洲一区免费网站| 亚洲一级黄色片| 国产欧美日韩中文字幕| 日韩欧美福利视频| 日韩成人在线视频观看| 国产亚洲精品久久久| 日韩视频在线免费| 欧美—级a级欧美特级ar全黄| 日韩精品日韩在线观看| 91精品久久久久久| 成人在线精品视频| 欧美日韩国产中文字幕| 中文字幕九色91在线| 91精品国产综合久久香蕉的用户体验| 国产亚洲精品久久久久久777| 色综合久综合久久综合久鬼88| 日本精品中文字幕| 777国产偷窥盗摄精品视频| 成人黄色av免费在线观看| 日韩免费精品视频| 日本91av在线播放| 91精品国产高清| 久久夜色精品国产亚洲aⅴ| 97超碰蝌蚪网人人做人人爽| 最近2019中文字幕在线高清| 日韩av网址在线| 精品久久在线播放| 亚洲男人天堂手机在线| 欧美日韩国产精品一区二区三区四区| 岛国av一区二区在线在线观看| 在线亚洲欧美视频| 日本不卡高字幕在线2019| 色七七影院综合| 久久精品人人做人人爽| 97视频人免费观看| 日韩欧美一区视频| 亚洲国产欧美一区二区三区久久| 国产日韩视频在线观看| 欧美麻豆久久久久久中文| 国产精品aaaa| 日韩成人激情在线| 亚洲精品一区二区在线| 欧美一级大胆视频| 性亚洲最疯狂xxxx高清| 亚洲精品资源美女情侣酒店| 日韩av中文字幕在线免费观看| 55夜色66夜色国产精品视频| 秋霞午夜一区二区| 91亚洲一区精品| 91九色精品视频| 欧美高清视频免费观看| 日本视频久久久| 久久久久久尹人网香蕉| 国产精品国模在线| 国产91色在线|免| 国内外成人免费激情在线视频网站| 亚洲国产精品久久久| 国产精品亚洲视频在线观看| 日韩黄色在线免费观看| 国产精品欧美一区二区三区奶水| 精品国模在线视频|