Vue工程模板文件 webpack打包
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: [{
//加载与编译vue文件
loader: 'vue-loader',
options: {
loaders: {
less: ExtractTextPlugin.extract({
//minimize 启用压缩
use: ['css-loader?minimize', 'autoprefixer-loader', 'less-loader'],
//加载vue文件中的样式文件
fallback: 'vue-style-loader'
}),
css: ExtractTextPlugin.extract({
use: ['css-loader', 'autoprefixer-loader', 'less-loader'],
//加载vue文件中的样式文件
fallback: 'vue-style-loader'
})
}
}
}]
},
//iview文件夹下的js编译处理
{
test: /iview\/.*?js$/,
//es6编译为es5
loader: 'babel-loader'
},
//js编译处理
{
test: /\.js$/,
loader: 'babel-loader',
exclude: /node_modules/
},
//css处理
{
test: /\.css$/,
use: ExtractTextPlugin.extract({
//css-loader加载css样式文件,minimize 启用压缩
use: ['css-loader?minimize', 'autoprefixer-loader'],
//将样式表直接插入到页面的<style>内
fallback: 'style-loader'
})
},
//less处理
{
test: /\.less/,
use: ExtractTextPlugin.extract({
//less-loader编译与加载less文件(需要依赖less库)
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
//处理共用、通用的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"
}
(4)babel配置.babelrc文件
{
"presets": ["es2015"],
"plugins": ["transform-runtime"],
"comments": false
}
Vue工程模板文件 webpack打包的更多相关文章
- vue项目之webpack打包静态资源路径不准确
摘自:https://blog.csdn.net/viewyu12345/article/details/83187815 问题 将打包好的项目部署到服务器,发现报错说图片找不到. 静态资源如js访问 ...
- vue项目通过webpack打包生成的dist文件放到express环境里运行(vue+webpack+express)
1.首先需要的原料肯定是vue打包生成的dist文件 在vue项目目录下运行:npm run build,等待运行结束,会在项目目录下生成一个dist文件夹,里面会生成一些文件(如下图示) 小的项目文 ...
- Vue项目用webpack打包后,预览时资源路径出错(文末有vue项目链接分享)
最近用vue写了一些项目,项目写完之后需要打包之后才能放到网上展示,所以在这里记录一下项目打包的过程以及遇到的一些问题. --------------------------------------- ...
- vue -webkit-box-orient: vertical webpack打包后被过滤掉了 线上没有这行代码
(1)方法一:加上绿色注释,跳过webpack的css打包 .word-overflow-{ overflow:hidden; text-overflow:ellipsis; display:-web ...
- vue项目用webpack打包后跨域问题
在app.js的最开始加上 app.all('*', (req, res, next) => { res.header("Access-Control-Allow-Origin&quo ...
- vue项目在webpack打包后背景图片显示不了
加上 publicPath:'../../'即可
- Vue老项目支持Webpack打包
1.老的vue项目支持webpack打包 最近在学习Vue.js.版本是2.6,webpack的版本也相对较老,是2.1.0版本.项目脚手架只配置了npm run dev和npm run build. ...
- Webpack打包方式及各场景下模块化语法总结
1.nodejs的方式:commonjs var xx =require() modules.exports=xxxx 注意:这种方式引入模块,路径会遵循node的规则,和js的src路径规则不 ...
- webpack打包vue文件报错,但是cnpm run dev正常,最后我只想说:是我太笨,还是webpack4.4版本太坑
最近做一个项目,需要使用webpack打包 .vue 文件的单页面应用,调试都正常,使用cnpm run dev 都可以,就是webpack打包时报错.如下: ERROR in ./src/App.v ...
随机推荐
- Photoshop CC 2015
1.Ctrl 加 + -号实现放大缩小2.Ctrl+T 自由变换3.Ctrl+D 取消选区,再选择处理完后想要选中别的区域的话要取消之前选中的区域,要不然之前的区域一直都是选中状态4.F12 将文件恢 ...
- RESTful 接口实现简明指南
REST 简介 REST 是一个术语的缩写,REpresentational State Transfer,中文直译「表征状态转移」,这是个很拗口的词.我的建议是先不要强行理解,直接看怎么做,等对实施 ...
- IE8的 JS 引擎如此不堪(二) - 解决方案
上一篇,IE8的JS引擎内存不停增长,是因为动态生成了一个image对象导致的.有了病因,就开始寻找治疗方法. 1.使用一个固定的img对象,但是无法获取地址改变后的图片大小,最总还是放弃: 2.寻找 ...
- 【转】持续集成 Sonar 平台搭建及 Sonar 自定义规则打包部署篇
引言 基于阿里开发手册的sonar自定义插件工程 开源地址: https://github.com/tigerge000/sonar-java-custom-rules.git由于最近来问童鞋,就算写 ...
- Macaca 自动化录制工具uirecorder使用入门
Q&A PC端执行用例前,一定要运行selenium-standalone start,否则会出现这个问题:https://github.com/alibaba/uirecorder/issu ...
- 51nod 最长公共子序列问题(动态规划)(LCS)(递归)
最长公共子序列问题 输入 第1行:字符串A 第2行:字符串B (A,B的长度 <= 1000) 输出 输出最长的子序列,如果有多个,随意输出1个. 输入示例 abcicba abdkscab 输 ...
- 【BZOJ 2333 】[SCOI2011]棘手的操作(离线+线段树|可并堆-左偏树)
2333: [SCOI2011]棘手的操作 Description 有N个节点,标号从1到N,这N个节点一开始相互不连通.第i个节点的初始权值为a[i],接下来有如下一些操作: U x y: 加一条边 ...
- 10.2(java学习笔记)JDBC事务简述
一.事务 事务是指作为一系列操作组成的一个整体,该整体只有两种状态,要么全部执行,要么全部不执行. 当组成这个事务的所有语句都执行成功则该事务执行,只要有一条语句执行失败则该事务不执行. 假设这里有一 ...
- 7.2(java学习笔记)URL
一.URL URL类表示统一资源定位符,指向万维网上“资源”的指针. 资源可以是简单的文件或目录,也可以是对更复杂对象的引用,比如对数据库或搜索引擎的查询. URL即是定位也是资源,定位到网络中一个具 ...
- [Hybrid App]--Android混合开发,Android、Js的交互
AndroidJs通信 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !imp ...