首页 > 代码库 > webpack 配置流程记录

webpack 配置流程记录

 vue项目实战记录,地址在这 购物车单界面   

npm installnpm 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的时候我一般都直接去掉了,因为格式的错误提示很蓝瘦,有兴趣的可以Googlevue: {//css文件配置,具体看utils.cssLoaders函数    loaders: utils.cssLoaders({ sourceMap: useCssSourceMap }),    postcss: [      require(autoprefixer)({        browsers: [last 2 versions]      })    ]  }dev-server.jsmodule.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 高仿饿了么的实战项目,有需要视频的告诉我,给链接。

 

webpack 配置流程记录