分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

webpack笔记1

发布时间:2023-09-06 01:29责任编辑:彭小芳关键词:webpack

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() 懒加载

webpack笔记1

原文地址:http://www.cnblogs.com/yanze/p/7999956.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved