1.安装webpack

npm install webpack -g

2.进入项目目录,初始化

npm init

3.将webpack安装到项目依赖中

npm install webpack --save-dev

4.创建一个webpack.config.js配置文件

module.exports = {

  // 需要编译的文件
  entry:{
    index1:'./src/index1.js',
    index2:'./src/index2.js'
  },

  // 编译配置项
  output:{

    // 输出到哪个目录
    path:'./dire',

    // 文件名 [name]会根据entry的键名来取值
    filename:'[name].js'
  }
};

目录结构:

5.cmd中输入:webpack

结果会生成一个dire目录。

OK,完成。

我们看看里面生成的代码。

乱七八糟的,如果想去掉这些可以这样。

var webpack = require('webpack');

module.exports = {
  entry:{
    index1:'./src/index1.js',
    index2:'./src/index2.js'
  },
  plugins:[
    new webpack.optimize.UglifyJsPlugin()
  ],
  output:{
    path:'./dire',
    filename:'[name].js'
  }
};

好像没啥用对吧,我们可以这样。

webpack小试身手,模块化开发。

目录结构

module.exports = {
  entry:'./main.js',
  plugins:[
    new webpack.optimize.UglifyJsPlugin()
  ],
  output:{
    path:'./dire',
    filename:'main.js'
  }
};

这里将main.js做为主模块,我们可以在main.js里面将需要用到的js文件通过require引入进来,达到模块化的需求,这个require的用法和nodejs一样。

当然你可以划分成多个模块,你只需要更改一下这个。

module.exports = {
  entry:{

    xx:'./xx/xx.js',

    xx:'./xx/xx.js'

    .......

  },
  plugins:[
    new webpack.optimize.UglifyJsPlugin()
  ],
  output:{
    path:'./dire',
    filename:'[name].js'
  }
};

这样你就可以根据不同模块编写JS代码了。真不错。

但这都只是冰山一角,来看看webpack更强大的功能。

在main.js中导入css文件。

main:require('./src/index.css');

但是发现报错了,我们需要配置一下webpack.config.js

编译css

var webpack = require('webpack');

module.exports = {
  entry:'./main.js',
  plugins:[
    new webpack.optimize.UglifyJsPlugin({
      compress:{

        //去除控制台错误
        warnings:false
      }
    })
  ],
  output:{
    path:'./dire',
    filename:'main.js'
  },
  module:{
    loaders:[
      {test:/\.css$/,loader:'style-loader!css-loader'}
    ]
  }
};

还得安装一下

npm install style-loader css-loader --save-dev

在main.js里面使用less文件。

require('./src/index.css');

require('./src/less.less');

需要进行如下配置:

loaders:[
  { test: /\.less$/, loader: 'style-loader!css-loader!less-loader' },
  { test: /\.css$/, loader: 'style-loader!css-loader' }
]

还得安装style-loader,css-loader,less-loader

npm install style-loader css-loader less-loader --save-dev

我安装完,webpack编译less文件的时候发现报错了。原来是还得安装一下less.

npm install less --save-dev

来看一下页面的效果:

我们用require过来的css文件变成style样式。

除了这个,我们还可以用来处理图片,将图片转成base64

main.js

require('./src/index.css');

require('./src/less.less');

var img = document.createElement('img');
img.src = require('./src/baidu.png');

var box = document.getElementById('box');
box.appendChild(img);

webpack.config.js

  

loaders:[
  { test: /\.less$/, loader: 'style-loader!css-loader!less-loader' },
  { test: /\.css$/, loader: 'style-loader!css-loader' },
  { test: /\.(png|jpg)$/, loader: 'url-loader?limit=8192' }
]

  

limit:表示图片小于多少就转成base64格式的图片。

使用前我们还得安装一下url-loader

npm install url-loader --save-dev

webpack

看看效果

生成base64位了噢。

在css,less中都是可以使用的噢。

less代码

ul{
  li{
    width:200px;
    height:200px;
    color:red;
    font-size:18px;
    background:url(./baidu.png) no-repeat;
  }
}

webpack实在太棒了。

如果你想编译其他格式的文件使用方法都差不多,这里就不试了。

通过webpack --watch监听文件变化自动打包。

webpack学习笔记的更多相关文章

  1. 【原】webpack学习笔记

    之前在react的项目中有用过webpack,不过没有认真的去研究,这段时间又重新好好的学习一下webpack,发觉 webpack是一个很强大的东西.而且很好用,方便,接下来主要是做一下学习的笔记 ...

  2. 更博不能忘——webpack学习笔记

    webpack是前端构建系统就像grunt和gulp(之前有学习过grunt所以也就大概明白webpack是个什么东西),所以说前端技术大部分还真是相通的,现在觉得当时多看的东西并不白费,虽然长时间不 ...

  3. webpack学习笔记(二)-- 初学者常见问题及解决方法

    这篇文章是webpack学习第二篇,主要罗列了本人在实际操作中遇到的一些问题及其解决方法,仅供参考,欢迎提出不同意见. 注:本文假设读者已有webpack方面相关知识,故文中涉及到的专有名词不做另外解 ...

  4. webpack学习笔记一:安装webpack、webpack-dev-server、内存加载js和html文件、loader处理非js文件

    一 .webpack学习环境准备: 1:window系统 2:安装node.js  官方网址 下载好后下一步下一步安装即可 安装步骤略过....... 3:nrm的安装 打开cmd命令控制台 输入:n ...

  5. Webpack学习笔记九 webpack优化总结

    webpack 优化笔记 webpack4 自带的优化包括 swingTree(摇摆树)和作用域提升 swingTree 比如入口文件 index.js引入通用方法 util, 里面有 10个方法, ...

  6. Webpack学习笔记一:What is webpack

      #,Loaders干嘛的,webpack can only process JavaScript natively, but loaders are used to transform other ...

  7. webpack学习笔记—webpack安装、基本配置

    文章结构: 什么是webpack? 安装webpack 'webpack基本配置 一.什么是webpack? 在学习react时发现大部分文章都是react和webpack结合使用的,所以在学reac ...

  8. 【webpack学习笔记】a04-建立开发环境

    开发环境就是在开发过程中为了方便配置的环境,生产环境就是开发完成即将上线的情况. 好了,说了句废话,切入正题. 在开发时,打包后的文件压缩成一团,报错调试的时候傻眼了有木有?每次做出修改需要到浏览器查 ...

  9. Webpack 学习笔记总结

    Webpack安装 Linux系统默认已经安装了node&npm,但版本比较低,而且没法升级,可以重新下载Node然后通过软链接替换系统自带的node和npm; ln -s /path_to/ ...

  10. webpack学习笔记丁点积累

    webpack是什么? https://webpack.js.org/concepts/ https://code.tutsplus.com/tutorials/introduction-to-web ...

随机推荐

  1. win32 COM组件编写

    win32的com组件: 1. 编辑idl,idl文件会生成对应的com class和com interface,例如 [ object, uuid(xxxxxxxx-xxxx-xxxx-xxxx-x ...

  2. 初探Lambda表达式

    简单例子 Expression<Func<; 了解Net方法,没有比IL来得更加容易.反编译IL代码如下(截取部分显示) [] <<int32, bool>> ex ...

  3. .NET环境下导出Excel表格的两种方式和导入两种类型的Excel表格

    一.导出Excel表格的两种方式,其中两种方式指的是导出XML数据类型的Excel(即保存的时候可以只需要修改扩展名为.xls)和真正的Excel这两种. using System; using Sy ...

  4. java 上传POJO model jar

    打开eclipse----找到要打包的java文件,右键----Export----选择 JAR File 然后NEXT,会让你选择打包的文件,,选择你想打包的,一个或几个.... 在文件选择框的下面 ...

  5. C++ std::map::erase用法及其陷阱

    1.引入: STL的map中有一个erase方法用来从一个map中删除制定的节点 eg: map<string,string> mapTest; typedef map<string ...

  6. NoSQL 精粹

    1.2 阻抗失谐:关系型数据库过于简单和标准的表达方式(表+行或者说关系relation+元组tuple)不能很好的映射到应用(如表达嵌套:和其它表达方式如XML).解决办法:对象-关系映射框架,但查 ...

  7. 深入理解openstack网络架构(4)-----连接到public network

    原文地址: https://blogs.oracle.com/ronen/entry/diving_into_openstack_network_architecture3 译文转自:http://b ...

  8. 即时通信系统中如何实现:聊天消息加密,让通信更安全? 【低调赠送:QQ高仿版GG 4.5 最新源码】

    加密重要的通信消息,是一个常见的需求.在一些政府部门的即时通信软件中(如税务系统),对聊天消息进行加密是非常重要的一个功能,因为谈话中可能会涉及到机密的数据.我在最新的GG 4.5中,增加了对聊天消息 ...

  9. Linux3:more、which、find、chmod、tar、diff、grep、ps、netstat、uname

    more 类似cat,不过more不是将整个文件内容从上到下显示在屏幕上的,而是以一页一页的显示方便使用者逐页阅读.more最基本的指令就是space即往下翻一页,b即往回翻一页显示,而且还有搜索字符 ...

  10. Ng Http Request/response格式转换

    angular作为Single Page Application推荐的交互方式当然是基于json的ajax调用.但今天要说的是当你不幸工作在一个遗留或者不可控制的服务上,而这服务是基于非json提交方 ...