webpack笔记1

1.设置多个入口起点

多用于提取公共类库

a、利用commonChunkPlugin

const webpack= require(‘webpack‘);
const path = require(‘path‘);const HtmlWebpackPlugin= require(‘html-webpack-plugin‘);const CleanWebpackPlugin = require(‘clean-webpack-plugin‘);
module.exports = {
  entry: {
    main: ‘./src/main.js‘,  //工具类放在一个入口  //当内容为数组时,将创建多个主入口,生成一个chunk
    vendor: [‘jquery‘,‘angular‘]  },
  output: {
    filename: ‘[name].[chunkhash].js‘,
    path: path.resolve(__dirname, ‘dist‘),
    publicPath: ‘./‘
  },
  module: {
      rules: [
      {
          test: /\.css$/,
          use: [‘style-loader‘, ‘css-loader‘]
      },{
        test: /\.(png|jpg|gif|svg)$/,
        loader: ‘file-loader‘,
        options: {
              name: ‘[name].[ext]?[hash]‘
        }
    },{
        test: /\.vue$/,
        loader: ‘vue-loader‘,
        options: {
              loaders: {
            ‘scss‘: ‘vue-style-loader!css-loader!sass-loader‘,
            ‘sass‘: ‘vue-style-loader!css-loader!sass-loader?indentedSyntax‘,
              }
              // other vue-loader options go here
        }
      }
      ]
  },
  plugins: [
    new HtmlWebpackPlugin({
       title: ‘Output Management‘
    }),
    new CleanWebpackPlugin([‘dist‘]),
    new webpack.optimize.CommonsChunkPlugin({      name: ‘vendor‘,      filename: ‘librarys.js‘
      })
  ],
  devtool: ‘source‘
};

这样就能生成librarys.js,包含jquery与angular,但值得注意的是会连同公共类库一起打包

b.利用external提取公共类库(推荐方法)

const path = require(‘path‘);
const HtmlWebpackPlugin= require(‘html-webpack-plugin‘);
const CleanWebpackPlugin = require(‘clean-webpack-plugin‘)
var ManifestPlugin = require(‘webpack-manifest-plugin‘);
const webpack= require(‘webpack‘);

module.exports = {
  entry: {
    main: ‘./src/main.js‘
  },
  output: {
      //非覆盖更新
    filename: ‘[name].[chunkhash].js‘,
    path: path.resolve(__dirname, ‘dist‘),
    publicPath: ‘./‘
  },
  externals: {
      jquery: ‘jquery‘
    },
  module: {
      rules: [
      {
          test: /\.css$/,
          use: [‘style-loader‘, ‘css-loader‘]
      },{
        test: /\.(png|jpg|gif|svg)$/,
        loader: ‘file-loader‘,
        options: {
              name: ‘[name].[ext]?[hash]‘
        }
    },{
        test: /\.vue$/,
        loader: ‘vue-loader‘,
        options: {
              loaders: {
            ‘scss‘: ‘vue-style-loader!css-loader!sass-loader‘,
            ‘sass‘: ‘vue-style-loader!css-loader!sass-loader?indentedSyntax‘,
              }
        }
      }
      ]
  },
  plugins: [
      new HtmlWebpackPlugin({
       title: ‘Output Management‘
    }),
    new CleanWebpackPlugin([‘dist‘])
  ],
  devtool: ‘source‘
};

注意这里使用的是使用全局变量的方式,所以得手动在index.html中引入jquery

2.commonChunkPlugin

将公共依赖放入模块提取到已有的入口chunk中,或者提取到新生成的chunk(常见)

4.动态载入

chunkFilename 非入口chunk名称

return import(/*webpackCHunkName: "ladash"*/‘lodash‘).then() 懒加载

时间: 2024-10-12 17:05:34

webpack笔记1的相关文章

Webpack笔记(二)——搭建React开发环境

前几天一直在学习webpack,总算比之前学习的时候有了点收获,所以在昨天发布了一篇webpack入门笔记,今天继续使用webpack练了练手,搭建了一个React开发环境,如果还不熟悉的童鞋可以看一下昨天发布的笔记:入门webpack笔记 一.初始化项目文件夹 在任意目录下,新建一个文件夹作为你的项目文件夹,命名随意.随后使用命令行工具,切换到该文件夹,键入npm init进行初始化(遇到的问题一直回车就好了),初始化完成之后可以看到生成了一个package.json文件. 随后在该项目文件夹

webpack笔记

声明:摘自  keliyxyz的博客 (一)webpack介绍 如今的网站正在演化为web应用程序: 1. 越来越多的使用JavaScript. 2. 现代浏览器提供更广泛的接口. 3. 整页刷新的情况越来越少,甚至更多代码在同一个页面.(SPA) 因此有很多代码在客户端! 一个体量庞大的代码库需要好好组织.模块系统提供代码库划分成模块的选项. 目前有多个标准定义依赖和输出: 1. script标签(不要模块系统) 2. CommonJS 3. AMD和它的一些变种 4. ES 6 5. 其它

webpack学习笔记

webpack笔记 webpack学习笔记 1.全局安装 npm install webpack -g 2.作为项目依赖安装 npm install webpack --save-dev 3.安装css-loader.sass-loader.node-scss npm install css-loader sass-loader node-scss --save-dev 4.webpack配置 // webpack.config.js var path = require('path'); mo

webpack学习

一.什么是webpack? Webpack 是德国开发者 Tobias Koppers 开发的模块加载器Instagram 工程师认为这个方案很棒, 似乎还把作者招过去了在 Webpack 当中, 所有的资源都被当作是模块, js, css, 图片等等..因此, Webpack 当中 js 可以引用 css, css 中可以嵌入图片 dataUrl. Webpack 是一个前端资源加载/打包工具,只需要相对简单的配置就可以提供前端工程化需要的各种功能,并且如果有需要它还可以被整合到其他比如 Gr

webpack理论完整版

有关于webpack官方文档的粗略学习,暂时告一段落,关于webpack是如何将项目整体构建包括代替gulp和grunt的打包功能,有待在实际项目中更深一步的实践.毕竟已经有一段时间不用了,知识在于巩固,不巩固是真的会生疏的,而且webpack4新鲜出炉,号称实现零配置.而且最近后天同学在进行关于spring boot 和spring cloud的学习,据了解也是零配置.感觉技术虽然越来越多,但是“懒人”还是大有人在,俗话说懒促进了世界的发展.那么,下次研究webpack4之后再来分解. 一下是

webpack学习笔记一

webpack.gulp.grunt是前端打包功能工具:因为已经学习了gulp,而最近发现webpack很火,于是着手学习webpack.本篇是webpack学习笔记系列的第一篇,欢迎指教. 我是从慕课网以及官网文档相结合的方式学习的,从官方文档学到的第一个知识点是在使用webpack打包过程中,即使没有webpack.config,js这个文件也是可以的. 首先是全局安装webpack,cmd(如果是window系统,在任意位置)执行命令: npm install --g webpack或cn

《nodejs+gulp+webpack基础实战篇》课程笔记(四)-- 实战演练

一.用gulp 构建前端页面(1)---静态构建 npm install gulp-template --save-dev 通过这个插件,我们可以像写后台模板(譬如PHP)一样写前端页面.我们首先学习一下写法. 现在我们创建一个新任务:创建一个裸的index.html文件,然后在body里面写上 ,我的年龄是:<%= age %> 下载好gulp-template,我们引用并配置 var gulp_tpl = require("gulp-template"); gp.tas

webpack学习笔记八

webpack自动刷新浏览器 webpack开发服务器,是webpack官方提供的一个辅助开发工具,它可以自动监控项目下的文件,一旦有修改保存的操作,它就会自动执行打包命令,将我们的代码重新打包,并且需要的话还可以刷新浏览器. 首先我们安装webpack-dev-server 在CMD中安装执行npm intall webpack-dev-server -g 在项目目录执行安装依赖命令: npm install --save-dev webpack-dev-server 其中webpack-de

webpack学习笔记(一)

写在前面: 近几年前端发展迅速,各种新标准的出现,angular.vue.react等框架也是N足鼎立,nodejs的出现使得前端也跨足到server领域,还出现了前端工程化的概念,这一切都在提醒各位前端开发者(工程师)一件事情:我们时时刻刻都需要学习,更新自己的知识体系. 正文: webpack是前端工程化的一个代表,工程化也是一个比较大的概念,所以我会针对自己的学习过程写一个系列的学习笔记,此为第一篇. webpack负责将资源文件模块化,通过它的加载器加载使用,最终将项目打包发布. web