1.CommonsChunkPlugin:如果文件是多入口的文件,可能存在,重复代码,把公共代码提取出来,
又不会重复下载公共代码了多个页面间会共享此文件的缓存
// name: 这个给公共代码的chunk唯一的标识
// filename,如何命名打包后生产的js文件,也是可以用上[name]、[hash]、[chunkhash]
// minChunks,公共代码的判断标准:某个js模块被多少个chunk加载了才算是公共代码
2.var ExtractTextPlugin = require('extract-text-webpack-plugin') //如果我们想用webpack打包成一个文件,css js分离开,需要这个插件
var HtmlWebpackPlugin = require('html-webpack-plugin')//一个用于生成HTML文件并自动注入依赖文件(link/script)的webpack插件
3.env:require('./prod.env'), // 使用 config/prod.env.js 中定义的编译环境
index: path.resolve(__dirname, '../dist/index.html'), //编译输入的 index.html 文件
assetsRoot: path.resolve(__dirname, '../dist'), //编译输出的静态资源路径
assetsSubDirectory: 'static', // 编译输出的二级目录
assetsPublicPath: '/', // 编译发布的根目录,可配置为资源服务器域名或 CDN 域名
productionSourceMap: true, // 是否开启 cssSourceMap
被webpack编译处理过的资源文件都会在这个build.assetsRoot目录下,所以它不可以混有其它可能在build.assetsRoot里面有的文件。
例如,假如build.assetsRoot参数是/path/to/dist,build.assetsSubDirectory 参数是 static, 那么所以webpack资源会被编译到path/to/dist/static目录。
4.process.env 是读取系统环境变量的
5.webpack-dev-server 会使用当前的路径作为请求的资源路径(所谓当前的路径就是运行 webpack-dev-server 这个命令的路径
6.如上,当我们创建一个函数,系统就会为这个函数自动分配一个prototype指针,
指向它的原型对象。并且可以发现,这个原型对象包含两个部分(constructor 和 __proto__)其中constructor指向函数自身。(这里形成了一个小闭环)
当我们将该函数作为模版创建实例(new方法)的时候,我们发现创建出的实例是一个与构造函数同名的object,这个object是独立的,他只包含了一个__proto__指针(实例没有prototype,强行访问则会输出undefined),这个指针指向上面提到的构造函数的prototype原型对象。
这时候我们发现三者形成了一个大"闭环"。之所以加上引号,因为构造函数和实例之间无法直接访问,需要通过__proto__指针间接读取。
又不会重复下载公共代码了多个页面间会共享此文件的缓存
// name: 这个给公共代码的chunk唯一的标识
// filename,如何命名打包后生产的js文件,也是可以用上[name]、[hash]、[chunkhash]
// minChunks,公共代码的判断标准:某个js模块被多少个chunk加载了才算是公共代码
2.var ExtractTextPlugin = require('extract-text-webpack-plugin') //如果我们想用webpack打包成一个文件,css js分离开,需要这个插件
var HtmlWebpackPlugin = require('html-webpack-plugin')//一个用于生成HTML文件并自动注入依赖文件(link/script)的webpack插件
3.env:require('./prod.env'), // 使用 config/prod.env.js 中定义的编译环境
index: path.resolve(__dirname, '../dist/index.html'), //编译输入的 index.html 文件
assetsRoot: path.resolve(__dirname, '../dist'), //编译输出的静态资源路径
assetsSubDirectory: 'static', // 编译输出的二级目录
assetsPublicPath: '/', // 编译发布的根目录,可配置为资源服务器域名或 CDN 域名
productionSourceMap: true, // 是否开启 cssSourceMap
被webpack编译处理过的资源文件都会在这个build.assetsRoot目录下,所以它不可以混有其它可能在build.assetsRoot里面有的文件。
例如,假如build.assetsRoot参数是/path/to/dist,build.assetsSubDirectory 参数是 static, 那么所以webpack资源会被编译到path/to/dist/static目录。
4.process.env 是读取系统环境变量的
5.webpack-dev-server 会使用当前的路径作为请求的资源路径(所谓当前的路径就是运行 webpack-dev-server 这个命令的路径
6.如上,当我们创建一个函数,系统就会为这个函数自动分配一个prototype指针,
指向它的原型对象。并且可以发现,这个原型对象包含两个部分(constructor 和 __proto__)其中constructor指向函数自身。(这里形成了一个小闭环)
当我们将该函数作为模版创建实例(new方法)的时候,我们发现创建出的实例是一个与构造函数同名的object,这个object是独立的,他只包含了一个__proto__指针(实例没有prototype,强行访问则会输出undefined),这个指针指向上面提到的构造函数的prototype原型对象。
这时候我们发现三者形成了一个大"闭环"。之所以加上引号,因为构造函数和实例之间无法直接访问,需要通过__proto__指针间接读取。