1. 基本安装及命令

npm config set registry https://registry.npm.taobao.org     //  淘宝镜像
npm install webpack-cli -g   //  安装之后才能  webpack  -v

webpack index.js -o out.js     // 打包指定文件  指定输出路径及名称
webpack --mode development index.js -o out.js   //  指定打包方式为开发模式(默认为产品模式:去除console命令及其他未引用代码)

( src - dist  4.0版本默认不需配置《代码资源放置在src,生成的代码资源放置在dist 》,但也可以增加配置文件 webpack.config.js )

常用的 webpack.config.js

var path = require('path');

module.exports = {
entry: './src/index.js',
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'out')
}
};

webpack --mode development  // 只用 webpack,则默认为 production 模式,去除多余部分及调试提示

2. 合并打包

var path = require('path');

module.exports = {
entry: ['./src/a.js','./src/b.js','./src/c.js'],
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'out')
}
};

3. 分块打包

var path = require('path');

module.exports = {
entry: {
a:'./src/a.js',
b:'./src/b.js',
c:'./src/c.js'
},
output: {
filename: '[name].build.js',
path: path.resolve(__dirname, 'out')
}
};

4. 配置属性为开发模式  mode: development

5.url-loader 处理小图片

npm init

npm install url-loader --save

npm install file-loader --save  // 图片尺寸超过限制时使用

var path = require('path');

module.exports = {
entry: './src/index.js',
output: {
filename: 'bundle.js',
publicPath: './out/', // 最后的 / 不可少,两个 out 对应,确保 生成的大文件图片路径正确
path: path.resolve(__dirname, 'out')
},
mode:'production',
module: {
rules: [
{
test: /\.(png|jpg|gif)$/,
use: [
{
loader: 'url-loader',
options: {
limit: 8192
}
}
]
}
]
}
};

6. 引入 jquery     expose-loader

npm install expose-loader --save-dev

npm install jquery --save

var path = require('path');

module.exports = {
entry: './src/index.js',
output: {
filename: 'bundle.js',
publicPath: './out/', // 最后的 / 不可少,两个 out 对应,确保 生成的大文件图片路径正确
path: path.resolve(__dirname, 'out')
},
mode:'production',
module: {
rules: [
{
test: /\.(png|jpg|gif)$/,
use: [
{
loader: 'url-loader',
options: {
limit: 8192
}
}
]
},
{
test: require.resolve('jquery'),
loader: 'expose-loader?jQuery!expose-loader?$!expose-loader?scrollable'
}
]
}
};

使用  import $ from 'expose-loader?$!jquery';

相关链接:

loaders

webpack 踩坑

webpack:使用expose-loader 解决第三方库的插件依赖问题

webpack4导入jQuery的新方案

webpack4 打包的更多相关文章

  1. webpack4打包nodejs项目进阶版——多页应用模板

    前段时间我写了个打包nodejs项目的文章,点击前往 但是,问题很多.因为之前的项目是个历史遗留项目,重构起来可能会爆炸,当时又比较急所以就写个的适用范围很小的webpack的打包方法. 最近稍微得空 ...

  2. webpack4 打包静态资源

    demo 代码点此,开始之前,先做点准备工作. 准备工作 准备一个空文件夹,然后执行下列命令: npm init -y npm i -D webpack webpack-cli 然后创建一个 dist ...

  3. webpack4打包报错ERROR in multi ./src/main.js dist/bundle.js

    webpack打包测试: 上边将mode01.js模块及main.js主文件编写完成,下边使用webpack对这些js文件进行打包 1.进入程序目录,执行webpack main.js build.j ...

  4. webpack4 打包优化

    1 参考文章 彻底解决 webpack 打包文件体积过大 webpack4提升180%编译速度 详解webpack4之splitchunksPlugin代码包分拆 webpack v4 中的断舍离 开 ...

  5. webpack4 打包 library 遇到的坑

    output: { publicPath: '/', path: path.join(__dirname, 'lib'), filename: 'chart.js', library: 'tchart ...

  6. 详解webpack4打包--新手入门(填坑)

    注意,这个dev和build好像在哪儿见过??对了, 刚刚才在package.json里配置的“scripts”这一项的值就有“dev”和“build”.对,一点都不错,就是这2个值,这2个值代表的是 ...

  7. webpack4 打包报错 :regeneratorRuntime is not defined

    使用async函数,在webpack打包时报错 babel-polyfill is required. You must also install it in order to get async/a ...

  8. webpack4打包报错:WARNING in configuration The 'mode' option has not been set, webpack will fallback to 'production' for this value. Set 'mode' option to 'development' or 'production' to enable defaults fo

    运行命令webpack ./src/main.js ./dist/murenziwei.js后,目录上神马动静都没有,你以为在dist文件夹上会有murenziwei.js吗?毛都没有 警告和错误倒是 ...

  9. webpack4——打包html报错解决

    ①先引入html-webpack-plugin插件,然后在终端下载 npm install --save-dev html-webpack-plugin ②我的文件结构 ③修改webpack.dev. ...

随机推荐

  1. 发布Rest风格的WebService的SpringBoot极简例子

    JDK:1.8.0_212 IDE:STS4(Spring Tool Suit4 Version: 4.3.2.RELEASE) 工程下载:https://files.cnblogs.com/file ...

  2. HTML页面间传值

    页面一: window.location="./showUserMsg.html?IDno="+IDno+"&&thedate="+thedat ...

  3. LC 676. Implement Magic Dictionary

    Implement a magic directory with buildDict, and search methods. For the method buildDict, you'll be ...

  4. 小程序API:wx.showActionSheet 将 itemList动态赋值

    1.发现问题: 小程序调用API:wx.showActionSheet 时发现无论如何都不能将其属性itemList动态赋值. 2.分析问题: 首先我认为可能是格式的问题,itemList必须要求格式 ...

  5. flutter Could not find the built application bundle at build/ios/iphonesimulator/Runner.app

    运行flutter run时报错 提示如下: Could not find the built application bundle at build/ios/iphonesimulator/Runn ...

  6. ubuntu快速联网

    1:打开ubuntu 2:设置 特殊:red hat设置视频:http://www.jikexueyuan.com/course/1349_3.html?ss=1

  7. js __proto__ 和prototype的联系

    1.Javascript中所有的对象都是Object的实例,并继承Object.prototype的属性和方法,也就是说,Object.prototype是所有对象的爸爸.(个人感觉搞清楚这一点很重要 ...

  8. mysql的基本操作命令

    1,数据库操作: create database 数据库名 例:create database test; 亦或 create database test charset=utf8; 相关操作: 显示 ...

  9. BOM Summary P268-P269

    The Browser Object Model(BOM) is based on the window object, which represents the browser window and ...

  10. vlc 控件属性和方法

    VLC调研 VLC控件支持的参数和方法 VLC对象列表 Vlc Plugin Object的方法 l        VersionInfo:成员, 返回版本信息的字符串 l        vlc.ve ...