1、github
github地址:https://github.com/MengFangui/VueProjectTemplate
2、webpack配置
(1)基础配置webpack.base.config.js
const path = require('path'); //处理共用、通用的js const 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"htmlcode">//处理共用、通用的js const 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
//处理共用、通用的js const 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打包,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
更新日志
- 群星2013-青春缤纷辑压箱宝大公开3CD2[新加坡限量版][WAV整轨]
- 林育群.2013-BalladShow(日本版)【环球】【WAV+CUE】
- 陈加洛.1992-痛到感觉不到【宝丽金】【WAV+CUE】
- 群星.2023-宿命之敌电视剧原声带【韶愔音乐】【FLAC分轨】
- 東京事変-大発見[FLAC+CUE]
- 椎名林檎-三文ゴシップ[FLAC+CUE]
- 2024年08月04日
- 裘德《裘德「最后的水族馆」演唱会LIVE》[320K/MP3][228.89MB]
- 裘德《裘德「最后的水族馆」演唱会LIVE》[24bit 48kHz][FLAC/分轨][2.08G]
- 基因三重奏《如果你什么都不说 音乐会现场录音》[320K/MP3][145.37MB]
- 孟庭苇.1996-月亮说话(2020环球24KGOLD限量版)【上华】【WAV+CUE】
- 群星.1997-新艺宝优质音响系列·国语精选监听版【新艺宝】【WAV+CUE】
- 阿桑.2005-寂寞在唱歌(星外星引进版)【华研国际】【WAV+CUE】
- 基因三重奏《如果你什么都不说 音乐会现场录音》[FLAC/分轨][287.43MB]
- 蔡题谦《我爱你,却依然要看你走》[320K/MP3][88.65MB]