WEBPack 构建  --  基于webpack4


1.环境准备

  NodeJs:

     是一个基于 Chrome V8 引擎的 JavaScript 运行环境。其使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。简单来说就是一个运行环境,其内嵌了npm,可用作js包管理。

      下载地址:http://nodejs.cn/downlad/;

      一般选用稳定版,具体看自己需求。

      在命令行终端输入 node -v 和 npm -v 可查看安装版本

      

  WebStorm:

    是一款优秀的前端开发IDE,可用其他ide代替,如ideavscode等。

    下载地址:https://www.jetbrains.com/webstorm/;

    非社区版激活方式详见:http://idea.lanyus.com/; 具体不再重复叙述。或直接使用现有IDE即可。


2.基础构建

  1.项目创建

     在webstorm 中 File->  Project  ->  Empty Project;

      

       此时构建了一个空项目,点击左下角Terminal,打开项目对应命令终端。

    

     在命令终端输入 npm init -y 创建一个基于npm的项目,此时文件夹会多一个 package.json文件。此文件为js包版本控制。

        

   2.WebPack引入

    然后继续安装 webpack 环境。 webpack是一款优秀的前端打包工具,具体详见: https://www.webpackjs.com;

      在终端继续输入

      npm install --save-dev webpack 

      如果是安装 webpack4+ 版本,还需安装下面这个,否则打包时会报错

      npm install --save-dev webpack-cli

    如果安装过程很慢,一般是npm默认使用了国外服务器,可以通过挂载VPN解决,或者使用国内淘宝镜像.

      可在命令行终端输入

        npm config get registery查看服务器地址

npm config set registry https://registry.npm.taobao.org  切换为淘宝镜像

      或者可以安装个插件,终端输入

        npm i nrm -g nrm

      使用 nrm ls 查看可选服务器,当前使用的前面会有 “*”

      前面对应简称,后面是服务器镜像路径,使用 nrm use taobao 使用淘宝镜像服务器。

      

    安装好weback后

    会生成一个package-lock.json文件,这个文件是npm具体依赖对应的具体版本,不用去理会。

被下载下来的js会被放在node_modules中,在npm项目中,此路径为默认引入路径,所以直接引入对应js即可

    同时package.json如下所示。

{
"name": "webpackStudy",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"webpack": "^4.35.2",
"webpack-cli": "^3.3.5"
}
}

    简单介绍下package.json文件内容

    "scripts"  是脚本命令,大概相当于启动器,

    “devDependencies”  开发模式依赖,即不参与最后生产环境中去,同样还有一般的依赖。

    在使用命令终端导入js包格式默认为

  npm install 包名@版本号 --参数

    绿色部分为可选

      @版本号  为写的版本对应的最新版本,如 npm install jquery@1  会下载的为jquery 1中最新。

      可选参数

      -g  全局安装,即不安装到当前项目,一般安装为npm的一些插件。

      -save 安装完后并将该版本写入到package.json的依赖中

      -save-dev 引入到开发模式依赖,不会被下载到node_modules中,一般为辅助开发的工具而非被部署到项目应用的js模块。

    到目前为止,我们的环境基本已经构建好了,接下来该配置webpack了。


3.webpack的相关配置介绍

相关学习具体可参考 https://www.webpackjs.com/guides/getting-started/;这里仅仅做常用的配置,

在根目录下创建src 和 dist 文件夹,src作为源码文件夹, dict作为打包完输出的文件夹,项目文件夹如图所示:

在src中添加一个名为 index.js的js,此js为所有js的入口文件,这样在命令行终端输入 npx webpack 后webpack会将此js及其引入的文件进行打包编译。

如果需要更为强大的功能,请继续

去掉 package.json中 main属性,给"scripts"添加一个子属性 "build": "webpack",如图所示

同时在根目录下添加名为 webpack.config.js。

const path = require('path');

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

  webpack.config.js是webpack的配置文件,可拆分成开发版本和生产版本等,这里不详细讲述,主要介绍下module.exports 暴露的属性及其作用。

  entry: js文件入口,一般由此js导入项目全部文件,

  output: 打包编译后的文件。

  module: 一些第三方加载的loader(主要用于非js的文件加载,如css文件之类的)

  plugins: webpack的插件,一般用于帮助开发的小功能插件。


在之后的日子里会具体介绍webpack相关配置

webpack构建篇的更多相关文章

  1. webpack构建vue项目(配置篇)

    最近公司要求用vue重构项目,还涉及到模块化开发,于是乎,我专门花了几天的时间研究了一下webpack这个目前来看比较热门的模块加载兼打包工具,发现上手并不是很容易,现将总结的一些有关配置的心得分享出 ...

  2. 使用webstorm+webpack构建简单入门级“HelloWorld”的应用&&引用jquery来实现alert

    使用webstorm+webpack构建简单入门级"HelloWorld"的应用&&构建使用jquery来实现 1.首先你自己把webstorm安装完成. 请参考这 ...

  3. jQuery2.x源码解析(构建篇)

    jQuery2.x源码解析(构建篇) jQuery2.x源码解析(设计篇) jQuery2.x源码解析(回调篇) jQuery2.x源码解析(缓存篇) 笔者阅读了园友艾伦 Aaron的系列博客< ...

  4. Vue2+VueRouter2+webpack 构建项目实战(三):配置路由,运行页面

    制作.vue模板文件 通过前面的两篇博文的学习,我们已经建立好了一个项目.问题是,我们还没有开始制作页面.下面,我们要来做页面了. 我们还是利用 http://cnodejs.org/api 这里公开 ...

  5. Vue2+VueRouter2+webpack 构建项目实战(二):目录以及文件结构

    通过上一篇博文<Vue2+VueRouter2+webpack 构建项目实战(一):准备工作>,我们已经新建好了一个基于vue+webpack的项目.本篇文章详细介绍下项目的结构. 项目目 ...

  6. 深入浅出的webpack构建工具---AutoDllPlugin插件(八)

    深入浅出的webpack构建工具---AutoDllPlugin插件(八) DllPlugin插件能够快速打包,能把第三方依赖的文件能提前进行预编译打包到一个文件里面去.提高了构建速度.因为很多第三方 ...

  7. 使用webstorm+webpack构建简单入门级“HelloWorld”的应用&&构建使用jquery来实现

    使用webstorm+webpack构建简单入门级“HelloWorld”的应用&&构建使用jquery来实现 1.首先你自己把webstorm安装完成. 请参考这篇文章进行安装和破解 ...

  8. webpack 构建多页面应用

    如何使用webpack构建多页面应用,这是一个我一直在想和解决的问题.网上也给出了很多的例子,很多想法.猛一看,觉得有那么点儿意思,但仔细看也就那样. 使用webpack这个构建工具,可以使我们少考虑 ...

  9. 如何十倍提高你的webpack构建效率

    前言 http://jafeney.com/2016/07/10/2016-07-10-webpack/     webpack 是个好东西,和 NPM 搭配起来使用管理模块实在非常方便.而 Babe ...

随机推荐

  1. 英语foteball足球历史

    foteball n.足球 现代足球 参见:现代足球 现代足球起源地是在英格兰.传说在11世纪,英格兰与丹麦之间有过一场战争,战争结束后,英格兰人在清理战争废墟时发现一个丹麦入侵者的头骨,出于愤恨,他 ...

  2. 深入理解JVM-内存溢出案例演示与分析

    1.java堆溢出 思路:Java堆用于存储对象实例,只要不断地创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象, 那么在对象数量到达最大堆的容量限制后就会产生内存 ...

  3. 大数据之kafka-02.搞定kafka专业术语

    02.搞定kafka专业术语 在kafka的世界中有很多概念和术语是需要我们提前理解并且熟练掌握的,下面来盘点一下. 之前我们提到过,kafka属于分布式的消息引擎系统,主要功能是提供一套完善的消息发 ...

  4. MySQL Replication--复制延迟01--源码瞎猜

    本人完全不懂MySQL源码,以下文字纯属瞎猜,如有误导,概不负责!. 源码版本:MySQL 5.6.28 在sql/rpl_slave.cc文件中,time_diff的计算代码为: /* The ps ...

  5. fastJSON的常用方法总结

    fastJSON的常用方法总结 fastJSON中常用的对象是JSON,JSONArray,JSONObject三个对象.常用的方法如对象转为JSON字符串,JSON字符串转为对象,JSON字符串转为 ...

  6. Django-模型层(单表操作)

    目录 1.ORM简介 2.单表操作 2.1创建表 2.2添加表纪录 2.3查询表纪录 2.4删除表纪录 2.5修改表纪录 1.ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了 ...

  7. opencv——图像掩码操作

    使用opencv通过掩码去扣取图像中感兴趣的区域 步骤: 1.读取一张图片 2.转换颜色格式为hsv 3.设置要扣取区域颜色的上下门限 4.从原始图像中获取感兴趣区域的掩码 5.使用掩码和原始图像做云 ...

  8. Pthon魔术方法(Magic Methods)-bool

    Pthon魔术方法(Magic Methods)-bool 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.bool方法 __bool__: 内建函数bool(),或者对象放在逻 ...

  9. 使用flask搭建微信公众号:接收与回复消息

    token验证的意义 在看了别人的代码之后对token加密有了些理解了.但又觉得很鸡肋.第一次验证服务器的时候我在那弄了半天的验证其实不写也可以验证成功,只要直接返回echostr这个字段就行了.微信 ...

  10. js插件---videojs中文文档详解

    js插件---videojs中文文档详解 一.总结 一句话总结: js插件网上都有很多参考资料,使用起来也非常简单 二.lavarel中使用实例 <video id="example_ ...