webpack 的使用教程

boyanx1个月前技术教程6

今天接触webpack,就着官网上的教程一步一步的玩,把自己的理解总结以便和大家交流

webpack的主要特点

1. 可以把js,css,image,甚至文本当成模块来处理,并通过require的方法来调用。
2. 能够自动识别模块之间的依赖。

webpack的安装,通常是使用npm。

创建一个文件夹vue-webpack-basic,使用命令行进入该文件夹,输入npm install webpack,当然你也可以使用全局安装npm install webpack -g

2. 配置

  1. 在项目的根目录上创建配置文件 webpack.config.js,它的作用如同常规的 gulpfile.js/Gruntfile.js。

添加如下结构目录:

其中:

  • dist是最终文件生成的目录
  • lib 一些公共的类库
  • node_modules目录是通过npm安装的一些模块的目录所在,如jquery,vue等一些框架
  • src 是源码目录,开发时的文件都放在此目录下
  • index.html 应用入口页面
  • package.json项目描述文件
  • README.md 项目说明文件
  • webpack.config.js wepack工具的配置文件

各个文件的内容分别如下

index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript" src="dist/app.js" charset="utf-8"></script>  
</head>
<body>
    <div class="name"></div>
</body>
</html>

只需要在html文件中引入入口文件entry

entry.js
require('../css/index.css');
var $ = require('jquery');
console.log($('body'));
$(function{
    $('.name').text("通过jq录入的数据");
});

document.write(require("../js/content.js")); 

注意:webpack 内置的功能只能处理js,如果想要通过require的方法来调用css,image等其他格式的文件,需要使用相应的插件:

  1. 使用css-loaderstyle-loader通过require来调用css
    • 安装插件 npm install css-loader style-loader
  2. 在webpack中使用第三方库,只需要在根目录使用npm install packageName下载安装需要的库,然后在webpack页面中通过require的形式加载进来,就可以直接使用了。如此处的jquery。

content.js
module.exports = "It works from content.js.";

即便是文本也可以使用CommonJs的加载到js文件中。

index.css
body{
    background-color: green;
}

执行命令 webpack src/js/entry dist/app.js --modulebind 'css=style!css',即可生成最终的打包文件.

运作的流程大概如下

通过入口文件entry.js加载content.js和style.css,然后把entry.js生成到dist/app.js中,在html中直接引入文件app.js即可。
附上效果图
是否觉得上面的命令太长了,感觉太土了?不用怕,那些参数我们都是可以通过配置文件来配置的。
module.exports = {
    entry: "./src/js/entry.js",
    output: {
        path: "./dist",
        filename: "app.js"
    },
    module: {
        loaders: [
 { test: /\.css$/, loader: "style!css" }
        ]
    }
};
  • entry:指定入口文件
  • output:指定输出文件
  • module.loaders:指定加载器,在webpack中,可以配置各种各样的加载器,这样我们就不需要担心sass,less,等一些文件的编译问题了。

现在我们就可以直接的使用命令webpack来编译和调试我们的应用了,另外,我们还可以加入--watch 参数,这样每次有改动的时候就不需要重新编译应用了。

接下来还会有更加详细的参数使用和说明,包括各种插件的使用,还有和glup的配合使用。我会在学习的过程中一一做记录,同时直播出来和大家共同交流学习

标签: jquery loading

相关文章

前端面试:异步加载和延迟加载的理解?

回答:异步加载和延迟加载是前端优化网站性能的两种方法。异步加载的方案: 动态插入script标签通过ajax去获取js代码,然后通过eval执行script标签上添加defer或者async属性创建并...

视差滚动不适合网页的5个原因

@OpzoonUED 翻译,原文出自于smashinghub.com。列举缺点之前,首先我们要看看什么是视差滚动。视差效果,原本是一个天文学术语,当我们观察星空时,离我们远的星星移动速度较慢,离我们近...

伟景行 citymaker 从入门到精通(1)——js开发,最基本demo,加载cep工程文件

开发环境:citymaker 7(以下简称cm),jquery,easyui 1.4(界面),visual studio 2012(没有vs,部署到IIS也行,html在本地目录双击打开可用)以下演示...

加载后执行RunAfterImgLoaded.js

RunAfterImgLoaded.js故名思议是一款在图片加载完之后执行的一个js插件,但是这个还只是一个设想,有时间会再将它做出来。关于图片加载完之后执行的问题引申出一些新的发现。在最近一个切图项...

基于 layui、xlsx.js 封装的 excel 导出小插件

简介在工作中发现突然对excel导出有点小需求,所以开发了这款小插件。此工具兼容IE10,firfox等主流浏览器。文件读取基于H5的FileReader,导出excel基于XLSX.js(此项目已开...

DevExpress Demo示例展示:多功能站点插件

DevExpress ASP.NET MVC中有一个多功能扩展集合,包括RatingControl, the Round Panel,Callback Panel (通过callbacks自动更新内容...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。