vue项目实战, webpack 配置流程记录
vue项目实战记录,地址在这 购物车单界面
npm install
npm run dev
跑起来可以看到界面效果
这里简单记录一下webpack的编译流程
入口 package.json
"scripts": { "dev": "node build/dev-server.js", //npm run dev ,执行这里 "build": "node build/build.js" },
build文件下的dev-server.js文件
var config = require('../config')//引入的一个配置文件,运行时和开发时的一个配置文件 var webpack = require('webpack') var opn = require('opn') var proxyMiddleware = require('http-proxy-middleware')//http协议代理的一个中间链 var webpackConfig = require('./webpack.dev.conf')// 目前是开发环境,所以是dev.conf
webpack.dev.conf 的导入文件
var config = require('../config') var webpack = require('webpack') var merge = require('webpack-merge') var utils = require('./utils') var baseWebpackConfig = require('./webpack.base.conf') //导入基础配置文件 var HtmlWebpackPlugin = require('html-webpack-plugin')//webpack提供的一个操作html的插件 //具体看demo注释
webpack.base.conf 文件
var path = require('path') var config = require('../config') var utils = require('./utils') var projectRoot = path.resolve(__dirname, '../')//定义了当前项目的根目录 entry: { app: './src/main.js' //这个就是定义的入口文件了 }, output: { path: config.build.assetsRoot, //输出的文件路径,对应config文件加下的index.js文件的assetsRoot路径 publicPath: process.env.NODE_ENV === 'production' ? config.build.assetsPublicPath : config.dev.assetsPublicPath, filename: '[name].js' //对应的 entry的一个key ,这里就是app, app.js就是这么得来的 resolve: { //模块的相关配置 extensions: ['', '.js', '.vue', '.json'],//可以自动补全的后缀 fallback: [path.join(__dirname, '../node_modules')],//当前端模块找不到的时候就从node_modules里面找 alias: { //提供的别名 'vue$': 'vue/dist/vue.common.js', 'src': path.resolve(__dirname, '../src'), 'assets': path.resolve(__dirname, '../src/assets'), 'components': path.resolve(__dirname, '../src/components') } module: { // loaders: [ { //编译时候的处理,比如这里,对所有的js后缀文件babel loader做处理 test: /\.js$/, loader: 'babel', include: projectRoot, //检查该目录里面的文件 exclude: /node_modules/ //排除这个目录里面的文件 }, { //这里有个query操作, 超过10KB的文件,对文件名做处理 test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, loader: 'url', query: { limit: 10000, name: utils.assetsPath('img/[name].[hash:7].[ext]') } }, 还有一个eslint, 做demo的时候我一般都直接去掉了,因为格式的错误提示很蓝瘦,有兴趣的可以Google vue: { //css文件配置,具体看utils.cssLoaders函数 loaders: utils.cssLoaders({ sourceMap: useCssSourceMap }), postcss: [ require('autoprefixer')({ browsers: ['last 2 versions'] }) ] } dev-server.js module.exports = app.listen(port, function (err) {\ //启动server监听端口,这里是8080,在dev里面配置 //通过localhost端口启动网页 if (err) { console.log(err) return } var uri = 'http://localhost:' + port console.log('Listening at ' + uri + '\n') // when env is testing, don't need open it if (process.env.NODE_ENV !== 'testing') { opn(uri) } })
最近在学vue.js 高仿饿了么的实战项目,有需要视频的告诉我,给链接。