[Webpack并不难]使用教程(一)— entry,devtool,output,resolve

[Webpack并不难]使用教程(一)— entry,devtool,output,resolve

大家好,又见面了,我是全栈君。

Webpack是什么,我就不过多介绍了,大家都有耳闻,不过还是配张图让大家体会下。
图片描述

我的webpack版本是 3.10.0

  • 安装Webpack可以全局安装和局部安装。局部安装的话就最好在安装的当前目录下运行,你硬要在在外部用webpack?那你在命令行要输入安装webpack位置的路径了。
npm install --save webpack // 这是局部安装
./node_modules/.bin/webpack --help // 局部安装的使用要带路径

哇,要写路径,好麻烦哦,没事,那就全局安装吧。

npm install -g webpack

现在用webpack一般都写好配置文件的了,webpack.config.js,那么接下来就说这个配置文件主要怎样写。

module.exports = {
  devtool: '#eval-source-map', // 这个是打包的方式
  entry: './main.js',          // 入口文件。支持数组形式,将加载数组中的所有模块,但以最后一个模块作为输出,对象形式也一样。
  output: {                    
    path: './js',              // 打包后的文件存放位置
    publicPath: '/dist/',      // 这个下面详说
    filename: 'build.js'       // 打包后的文件名
  },
  resolve: {                   // 查找module的话从这里开始查找,下面详说。
    root: 'D:/webpack-test/src',
    extensions: ['.js', '.json', '.scss'],
    alias: {
        // 下面有例子。
    }
  }
};

devtool:打包方式。(官网的文档

devtool选项 打包速度 重建速度 是否支持生产模式
source-map 支持
eval-source-map + 不支持
cheap-module-source-map 0 支持
cheap-module-eval-source-map 0 ++ 不支持
cheap-source-map + 0 支持
cheap-eval-source-map + ++ 不支持
eval +++ +++ 不支持

从上到下,打包速度越来越快,开发环境一般用eval-source-map,生产环境自行斟酌咯。毕竟打包越快,打包质量也就越差。还有,不知大家发现没,带eval都不支持生产模式哦。

publicPath官网的文档

它被用来更新内嵌到css、html文件里的url值。

上面 publicPath: '/dist/' ,例如:

background-image:url('./test.png) // 路径变为'/dist/.test.png'
path: '/js' // 上面打包后的文件位置,那么路径变为'/dist/js/build.js'

pubilcPath很重要。在生产模式下如“test.png”文件可能会定位到CDN上并且你的Node.js服务器可能是运行在HeroKu(一个支持多种编程语言的云平台)上边的。一张图片,手动修改下咯,那如果你网站有上百张呢,那publicPath:'你服务器的ip地址',这样省事很多吧。

resolve官网的文档

  1. root:包含您的模块的目录(绝对路径)。
  2. extensions: 加载模块时可忽略的扩展名。
  3. alias:模块别名定义。举些例子:

    'Abc': '/js/x/y/z/abc.js'  
    // require('Abc'); 相当于 require('/js/x/y/z/abc.js')
    // 如果 require('Abc/index.js'), 这样不行的。
    
    'Abc': './js/x/y/z/abc.js' 
    // 如果该值是一个相对路径,它将相对于包含require的文件。
    // 例如:在test.js中require('Abc'), 那么test.js和abc.js要在同目录下的。  
      
    'Abc': '/js/store'
    // require('Abc') 就相当于 require('/js/store/index.js')
    // require('Abc/other.js') 就相当于 require('/js/store/other.js')
      
    'Abc$': '/js/store'
    // require('Abc') 就相当于 require('/js/store/index.js')
    // 后面带有 $ ,意味着要完全匹配 'Abc'
    // 如果 require('Abc/other.js'),因为没完全匹配Abc,那么加载的是 node_modules下Abc文件夹里的other.js!!!

使用教程(二)— module.loaders

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/107847.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • jenkins批量执行任务实践

    jenkins批量执行任务实践1、下载插件Multijobplugin2、创建MultijobJobname:对应job的路径Killthephaseon:设置未never表示前面的job失败也不会关掉后面的job选择并行还是串行:parallel表示并行,sequentially表示串行最终显示3、配置公共参数在Multijob中增加参数构建此时设置的参数为后面所有job的参数;如果之前的job也增加了参数构建,则原有的参数会被覆盖…

  • Fork/Join框架基本使用[通俗易懂]

    1.概述ava.util.concurrent.ForkJoinPool由Java大师DougLea主持编写,它可以将一个大的任务拆分成多个子任务进行并行处理,最后将子任务结果合并成最后的计算结果,并进行输出。本文中对Fork/Join框架的讲解,基于JDK1.8+中的Fork/Join框架实现,参考的Fork/Join框架主要源代码也基于JDK1.8+。这几篇文章将试图解释Fork/…

  • NPS监控体系详解

    NPS监控体系详解1.NPS监控原理及意义原理:通过定期调研市场用户的净推荐值,牵引质量在具体领域的改进;优势:践行绝对的用户导向将品牌影响力、产品销量、市场份额与历史数据表现联系起来2.NPS数据回收以手机产品为例,从用户使用产品之日起的整个使用体验周期分三次发送调研问卷:首月,6月,18月;3.NPS监控指标体系NPS:产品NPSNPS1,NPS2,NPS3:按生命周期阶段分NPS1,NPS2,NPS3δNPS:阶段差值为δNPS=NPSM-NPS1领域NPSM关注度好评率差评率**用户

  • 矩阵乘以其矩阵转置

    矩阵乘以其矩阵转置在推导公式和计算中,常常能碰到矩阵乘以其矩阵转置,在此做个总结。1.假设矩阵A是一个m∗nm∗nm*n矩阵,那么A∗ATA∗ATA*A^T得到一个m∗mm∗mm*m矩阵,AT∗AAT∗AA^T*A得到一个n∗nn∗nn*n的矩阵,这样我们就能得到一个方矩阵。看一个例子:Xθ=HXθ=HX\theta=H求解θθ\theta.XTXθ=XTHXTXθ=XT…

  • 关于ViewPager高度自适应(随着pager页的高度改变Viewpager的高度)

    关于ViewPager高度自适应(随着pager页的高度改变Viewpager的高度)一.背景:    第一次写博客还是技术性博客,为了回答CSDN上一位网友的问题,决定写一篇博客既帮助别人又帮助自己,经常看鸿洋大神,郭大神的博客,两位大神真是业界良心,不仅仅技术厉害,博客也写的让人一目了然,自身觉得自己内心知道的知识讲给别人或者是像这样写博客给别人看,让别人也了解,是一件很厉害的事。所以第一次写这种技术性博客,不知道看到的人是否能看懂得到一些启发,如果有什么不足的地方希

  • Navicat Premium 15激活【2021最新】

    (Navicat Premium 15激活)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号