前言

此内容是个人学习笔记,以便日后翻阅。非教程,如有错误还请指出

Webpack

  • 打包文件
  • 支持JS模块化
  • 模式: production(0配置默认), development(生产环境)

更详细的请前往 webpack官网

安装

  • npm i webpack webpack-cli -D

执行 webpack

  • npx webpack
  • 注意: 在有package.json的目录下执行命令, 当前目录一定要有src文件夹

手动配置webpack

module.exports = {
    mode: 'development', // 生产环境
    entry: './src/index.js', // 入口文件
    output: {
        filename: ' bundle.js',
        path: path.resolve(__dirname, 'dist'),  // 目标输出路径, path的绝对路径
    }
}

mode: 告诉 webpack 使用响应模式的内置优化

  • 使用development
    module.exports = {
    + mode: 'development'
    - plugins: [
    -   new webpack.NamedModulesPlugin(),
    -   new webpack.DefinePlugin({ "process.env.NODE_ENV": JSON.stringify("development") }),
    - ]
    }

webpack在生产环境下默认使用的插件。

  • production
  module.exports = {
  +  mode: 'production',
  -  plugins: [
  -    new UglifyJsPlugin(/* ... */),
  -    new webpack.DefinePlugin({ "process.env.NODE_ENV": JSON.stringify("production") }),
  -    new webpack.optimize.ModuleConcatenationPlugin(),
  -    new webpack.NoEmitOnErrorsPlugin()
  -  ]
  }

在生产环境下会对代码进行代码压缩等优化, 默认使用这些插件

## package.json中配置 webpack 快捷脚本
javascript "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "build": "webpack --config webpack.config.js" },
在脚本 scripts对象中新增了 build命令, 指定webpack --config, 通过--config选项来指定配置文件。
当执行 npm run build时, 会自动启用 webpack,并且找到 webpack.config.js配置文件并执行。

## plugins插件

  • webpack-dev-server
    为webpack应用程序提供开发服务器,它只适用于开发。在scripts中可以配置 "dev": "webpack-dev-server""
    运行使用 npm run dev

笔记地址

Webpack4 学习笔记一初探Webpack的更多相关文章

  1. Webpack4 学习笔记五 图片解析、输出的文件划分目录

    前言 此内容是个人学习笔记,以便日后翻阅.非教程,如有错误还请指出 webpack打包图片和划分文件路径 使用图片的方式 通过 new Image() 在 css中设置 background-imag ...

  2. Webpack4 学习笔记四 暴露全局变量、externals

    前言 此内容是个人学习笔记,以便日后翻阅.非教程,如有错误还请指出 webpack 暴露全局变量 通过 expose-loader 内联配置 在 webpack中配置 每个模块通过注入的方式 通过CD ...

  3. Webpack4 学习笔记三 ES6+语法降级为ES5

    前言 此内容是个人学习笔记,以便日后翻阅.非教程,如有错误还请指出 Webpack 将es6.es7语法降级为es5 需要通过 babel JavaScript编译器. 安装: npm i babel ...

  4. Webpack4 学习笔记二 CSS模块转换

    前言 此内容是个人学习笔记,以便日后翻阅.非教程,如有错误还请指出 webpack 打包css模块 webpack是js模块打包器, 如果在入口文件引入css文件或其它的less.sass等文件,需要 ...

  5. webpack4学习笔记(二)

    webpack打包各种javascript文件 (本文只是提供一个学习记录,大部分内容来自网络) 一,打包js文件和es6代码 1,webpack命令打包js文件 Tip: 在webpack4.x之前 ...

  6. webpack4学习笔记(一)

    webpack4 1,安装webpack npm insatll webpack --save-dev //安装最新版本 npm insatll webpack@<version> --s ...

  7. Webpack4 学习笔记八 开发环境和生产环境配置

    webpack resolve属性 webpack 区分开发环境和生产环境 webpack resolve属性 该选项的作用是设置模块如何被解析. resolve.alias: 设置别名, 在vue中 ...

  8. Webpack4 学习笔记七 跨域服务代理

    webpack 小插件使用 webpack 监听文件变化配置 webpack 处理跨域问题 Webpack 小插件使用 clean-webpack-plugin: 用于在生成之前删除生成文件夹的Web ...

  9. Webpack4 学习笔记六 多页面配置和devtool

    webpack 多页配置 webpack可以配置单页应用, 也可以配置多页应用. 区别在于, 单页应用entry入口只有一个, 而多页应用入口有多个 webpack配置: const path = r ...

随机推荐

  1. PHP速学

    基本代码 <?php echo "Hello world";?> 变量定义 <?php $a=true; $bool_value=true; $integer_v ...

  2. [转]jQuery: get table column/row index remove table column (by column number)

    本文转自:http://www.xinotes.org/notes/note/1087/ <!DOCTYPE html><html><head> <title ...

  3. 01-取消文件与svn服务器的关联

    有的时候一个和svn服务器关联的文件,svn的链接已经失效,但是文件还是显示和svn关联的状态. 下面主要是解决怎么取消一个文件和svn服务器的关联. 1 新建一个文本文件 在任意目录下新建一个文本文 ...

  4. Linux证书登录,禁用密码

    如果验证成功的话就可以关闭密码登陆方式了, 编辑/etc/ssh/sshd_config, 将PasswordAuthentication改为no, ChallengeResponseAuthenti ...

  5. http method and status code

    http method HEAD: 只返回相应的header POST: 一般用于提交表单 PUT: 向Web服务器上传文件 GET: 查 DELET: 删除 status code 1xx与2xx: ...

  6. Bootsrap Table表格分页

    一 bootsrap简介 Bootstrap,来自 Twitter,是目前很受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加 ...

  7. .net程序集标示与绑定上下文

    之前在实现Autofac扫描自加载程序集实现IOC时候遇到程序集依赖的问题,在网上搜了一下,没有发现中文世界的相关描述.随取google拿了几篇文章,翻译&自己的理解,之后会写一些小demo, ...

  8. 集成Springboot+MyBatis+JPA

    1.前言 Springboot最近可谓是非常的火,本人也在项目中尝到了甜头.之前一直使用Springboot+JPA,用了一段时间发现JPA不是太灵活,也有可能是我不精通JPA,总之为了多学学Spri ...

  9. atom markdown转换PDF 解决AssertionError: html-pdf: Failed to load PhantomJS module

    atom编辑器markdown转换PDF 解决AssertionError: html-pdf: Failed to load PhantomJS module. You have to set th ...

  10. C++ Knowledge series 2

    Programming language evolves always along with Compiler's evolvement The semantics of constructors O ...