1,必要的环境

2, 建立项目工程

利用npm来初始化一个项目的工程文件,在命令窗口中找到项目文件

npm init

执行以上代码后,会在项目文件根目录生成一个 package.josn 文件(配置文件)

以后,安装的包的时候,使用 npm install ‘包名’ --save-dev 都可以把安装的包记录到 配置文件中,这样做的目的是,当你迁移项目的时候,只需要把你自己的代码打包走,然后带着 package.json 就可以直接迁移依赖包了。

3,建立 webpack 配置文件

这个需要我们手工建立,一般的配置文件名称默认写:webpack.config.js,

在此之前,需要我们利用 npm 来安装 webpack,一般我们安装到全局:

npm install webpack -g

然后,根据我们的实际情况来抒写我们的配置:

module.exports = {

	// 基础路径
context : __dirname + '/src/script', // 入口点,
entry : {
bindPhone : './bindPhone'
}, // 出口点
output : {
filename : '[name].bundle.js',
path : __dirname + '/built'
}, // 模块加载器,可解决不兼容 commonjs 的插件
module : {
loaders : [
{ test : require.resolve('jquery'), loader : 'expose?$!expose?jQuery'},
{ test : require.resolve('./src/script/lib/jquery.mockjax.min.js'), loader : 'exports?window.mockajax'} ]
}
}

具体每个配置项有什么用,可参看 API(http://webpack.github.io/docs/configuration.html)

4, 实际工作中遇到的问题

  1. 如何下手写?

    我是直接在 html 中引用通过webpack 编译好的 js 文件,因为我知道webpack 会把在这个页面或则项目中用到的js都打包到此文件中。

     <script src="../../buit/bindPhone.bundle.js"></script>
  2. 如何编写自己的业务模块代码?

    因为 webpack 是兼容 AMD 规范和 commonjs 的,所以,我们可以利用 require()来加载依赖包,也可以用 define() 来定义我们的模块。当然,更好的是直接抒写:

     var $ = require('jquery');
    
     require('./lib/jquery.mockjax.min.js');
    
     var Mock = (function(){
    ...
    })() module.exports = Mock;
  3. 如何处理基于jquery的第三方插件?

    实际工作中,因为暂时没有后台提供接口,因此,我就利用 mockjax 来模拟后台响应,这个插件依赖于 jquery 并且其本身不是AMD规范或则commonjs,所以遇到很多问题:

    第一个问题 : jquery 未定义?

    因为他依赖于jquery,但是我们并未在全局设定 jquery 对象,因此会报错,即使在 js 文件中 require('jquery') 也不行

    var $ = require('jquery');
    require('./lib/jquery.mockjax.min.js');

    想这种类似的处理第三方的,我们一般解决办法是使用 shimming,要在 webpack 配置文件中把 jquery 变成全局变量

    	// 模块加载器,可解决不兼容 commonjs 的插件
    module : {
    loaders : [
    { test : require.resolve('jquery'), loader : 'expose?$!expose?jQuery'}
    ]
    }

    处理此方法我们依赖于 expose-loader,所以,我们要安装包 npm install expose-loader --save-dev

  4. 在开发中,我们经常修修改改,难道每次都要 webpack 一下(编译)?

    可以使用 --watch 来监听文件变化,并执行编译。

    webpack --watch
    
    但是,我发现运行并不好事,所有我就用gulp来监听js文件变动,然后执行 webpack

webpack 项目实践的更多相关文章

  1. Vue + webpack 项目实践

    Vue.js 是一款极简的 mvvm 框架,如果让我用一个词来形容它,就是 “轻·巧” .如果用一句话来描述它,它能够集众多优秀逐流的前端框架之大成,但同时保持简单易用.废话不多说,来看几个例子: & ...

  2. nodejs, vue, webpack 项目实践

    vue 及 webpack,均不需要与nodejs一期使用,他们都可以单独使用到任何语言的框架中. http://jiongks.name/blog/just-vue/ https://cn.vuej ...

  3. Node + Express + vue2.0 + Webpack项目实践

    技术 Express.Vue.Vue-Router.Vue-Resource.Webpack Vue vue 的组件化思想和 React 很像,一个 vue 组件将 html.css 和 js 都写在 ...

  4. react项目实践——(1)使用webpack创建项目

    1. 新建文件夹,命名为项目名称——myapp,并打开myapp文件夹. mkdir webpack-demo && cd webpack-demo 2. 在./myapp中打开命令行 ...

  5. 【微信小程序项目实践总结】30分钟从陌生到熟悉 web app 、native app、hybrid app比较 30分钟ES6从陌生到熟悉 【原创】浅谈内存泄露 HTML5 五子棋 - JS/Canvas 游戏 meta 详解,html5 meta 标签日常设置 C#中回滚TransactionScope的使用方法和原理

    [微信小程序项目实践总结]30分钟从陌生到熟悉 前言 我们之前对小程序做了基本学习: 1. 微信小程序开发07-列表页面怎么做 2. 微信小程序开发06-一个业务页面的完成 3. 微信小程序开发05- ...

  6. Vue项目实践中的功能实现与要点

    本贴记录项目实践中,各种功能的实现与技术要点,均有待改进. 路由切换的时候,显示loading动画 目前方案是: 在每个页面都手动装载一个loading组件组件的显示依赖vuex里面的一个值 , 在r ...

  7. Hangfire项目实践分享

    Hangfire项目实践分享 目录 Hangfire项目实践分享 目录 什么是Hangfire Hangfire基础 基于队列的任务处理(Fire-and-forget jobs) 延迟任务执行(De ...

  8. Windows on Device 项目实践 3 - 火焰报警器制作

    在前两篇<Windows on Device 项目实践 1 - PWM调光灯制作>和<Windows on Device 项目实践 2 - 感光灯制作>中,我们学习了如何利用I ...

  9. Windows on Device 项目实践 2 - 感光灯制作

    在上一篇<Windows on Device 项目实践 1 - PWM调光灯制作>中,我们学习了如何利用Intel Galileo开发板和Windows on Device来设计并完成一个 ...

随机推荐

  1. .Net中XML,JSON的几种处理方式

    一.XML: 1.基本了解: xml,Extensible markup language可扩展标记语言,用于数据的传输或保存,特点,格式非常整齐数据清晰明了,并且任何语言都内置了xml分析引擎, 不 ...

  2. C#操作字符串之常用函数总结

    1:使用string.Join 泛型集合快速转换拼接字符串. 2:使用 string.Split 将字符串截断转换成字符数组. 3:使用 string.Substring,string.Remove ...

  3. Spring 开发第一步(二)

    今天继续学习<Spring in action 3rd>并运行书中的例子,到了第4章aop,是加入一个作为切面的Audience类,将Performer的perform()方法作为切点来进 ...

  4. Day 2 Python 基础数据类型

    2.os.path.join()函数 语法:  os.path.join(path1[,path2[,......]]) 返回值:将多个路径组合后返回 注:第一个绝对路径之前的参数将被忽略 1 2 3 ...

  5. Open GL的学习路程

    一.EGL的使用 1.Dispaly与原生窗口的链接 -EGLDisplay  eglGetDisplay -EGLBoolean  egllinitialize 2.Surface 配置和创建sur ...

  6. SpringBoot入门之分散配置

    springboot默认支持两种格式的配置文件:.properties和.yml.其中.properties是属性文件,也是最常用的一种:.yml是yaml格式的文件,yaml是一种简洁的标记语言.例 ...

  7. zookeeper集群环境搭建详细图文教程

    zookeeper集群环境搭建详细图文教程 zhoubang @ 2018-01-02 [文档大纲] 友情介绍 软件环境 注意点 环境安装 1. 新建用于存储安装包以及软件安装的目录 2. 下载安装z ...

  8. POJ 1046

    #include<iostream> using namespace std; #define MAXN 16 #define inf 100000000 struct node { in ...

  9. WPF快速实现XML可视化编辑工具

    虽然最近业余时间主要都放在研究AngularJS上了,不过由于正好要帮朋友做一个生成XML的小工具,顺便又温顾了一下WPF.虽然这个时代相对于Web应用和移动App,Windows应用程序是越来越少了 ...

  10. 移动端h5直播项目|html5直播实战开发|h5仿陌陌

    最近一些直播.小视频什么的都比较火,像陌陌.抖音.火山短视频… 于是空闲时间自己也利用html5技术也试着倒腾了下直播项目,使用到了h5+css3+iscroll+zepot+swiper+wlsPo ...