官方文档:

http://webpack.github.io/docs/

1. 安装python
2. 安装node.js msi
3. npm自动打包在最新的node.js安装包里

被封的包用国内镜像下载

// 全局安装webpack
npm install webpack -g

常规项目把依赖写入package.json包中去
// 进入项目
cd myproject
// 初始化npm,生成package.json
npm init
// 写入package.json关于webpack的依赖
npm install webpack --save-dev

在项目目录新建webpack.config.js文件,并且写入:

  1. var webpack = require('webpack');
  2. var commonsPlugin = new webpack.optimize.CommonsChunkPlugin('common.js');
  3.  
  4. module.exports = {
  5. // 插件项
  6. plugins: [commonsPlugin],
  7. // 页面入口文件配置
  8. entry: {
  9. index: './src/js/page/index.js',
  10. component: './src/js/page/component.js'
  11. },
  12. // 入口文件输出配置
  13. output: {
  14. path: 'dist/js/page',
  15. filename: '[name].js'
  16. },
  17. module: {
  18. // 加载器配置
  19. loaders: [
  20. // .css文件使用 style-loader 和 css-loader 来处理
  21. { test: /\.css$/, loader: 'style-loader!css-loader' },
  22. // .js文件使用 jsx-loader 来编译处理
  23. { test: /\.js$/, loader: 'jsx-loader?harmony' },
  24. // .scss文件使用style-loader、css-loader和sass-loader来编译处理
  25. // loader可以省略不写,多个loader之间用!连接
  26. { test: /\.scss$/, loader: 'style!css!sass?sourceMap' },
  27. // 图片文件使用 url-loader 来处理,小于8kb的直接转为base64
  28. // url-loader将样式中引用到的图片转为模块来处理,使用该加载器需要先进性安装:
  29. // npm install url-loader --save-dev
  30. { test: /\.(png|jpg)$/, loader: 'url-loader?limit=8192' }
  31. ]
  32. },
  33. // 其他解决方案配置
  34. resolve: {
  35. // 从这里查找module
  36. root: 'E:/myproject/node_modules', // 绝对路径
  37. // 自动扩展文件后缀名,意味着我们require模块可以省略不写后缀名
  38. extensions: ['', '.js', '.json', '.scss'],
  39. // 模块别名定义,方便后续直接引用别名,无须多谢长长的地址
  40. alias: {
  41. AppStore: 'js/stores/AppStores.js', // 后续直接 require('AppStore') 即可
  42. ActionType: 'js/actions/ActionType.js',
  43. AppAction: 'js/actions/AppAction.js'
  44. }
  45. }
  46. };

配置信息的参数“?limit=8192”表示将所有小于8kb的图片都转为base64形式
(其实应该说超过8kb的才使用 url-loader 来映射到文件,否则转为data url形式)。

// 执行webpack.config.js文件
webpack
// 压缩混淆脚本,这个非常非常重要!
webpack - p

// 安装vue框架
npm install vue --save-dev

我的webpack与vue打包实例github地址:
https://github.com/liuqiuchen/myWebpack

添加vue加载器时:

  1. /**
  2. * Created by user on 2016/11/17.
  3. */
  4. var webpack = require('webpack');
  5. var commonsPlugin = new webpack.optimize.CommonsChunkPlugin('common.js');
  6. // 命令行下载关于vue加载器的模块:
  7. // npm install extract-text-webpack-plugin --save-dev
  8. var ExtractTextPlugin = require('extract-text-webpack-plugin');
  9.  
  10. module.exports = {
  11. // 插件项
  12. /**
  13. * 使用webpack的DefinePlugin来指定生产环境,以便在压缩时可以让UglifyJS自动删除代码块内的警告语句
  14. */
  15. plugins: [
  16. new webpack.DefinePlugin({
  17. 'process.env': {
  18. NODE_ENV: '"production"'
  19. }
  20. }),
  21. new webpack.optimize.UglifyJsPlugin({
  22. compress: {
  23. warnings: false
  24. }
  25. })
  26. ],
  27. // 页面入口文件配置
  28. entry: {
  29. index: './src/js/page/index.js',
  30. component: './src/js/page/component.js'
  31. },
  32. // 入口文件输出配置
  33. output: {
  34. path: 'dist/js/page',
  35. filename: '[name].js'
  36. },
  37. module: {
  38. // 加载器配置
  39. loaders: [
  40. // .css文件使用 style-loader 和 css-loader 来处理
  41. { test: /\.css$/, loader: 'style-loader!css-loader' },
  42. // .js文件使用 jsx-loader 来编译处理
  43. { test: /\.js$/, loader: 'jsx-loader?harmony' },
  44. // .scss文件使用style-loader、css-loader和sass-loader来编译处理
  45. // loader可以省略不写,多个loader之间用!连接
  46. { test: /\.scss$/, loader: 'style!css!sass?sourceMap' },
  47. // 图片文件使用 url-loader 来处理,小于8kb的直接转为base64
  48. // url-loader将样式中引用到的图片转为模块来处理,使用该加载器需要先进性安装:
  49. // npm install url-loader --save-dev
  50. { test: /\.(png|jpg)$/, loader: 'url-loader?limit=8192' },
  51. { test: /\.vue$/, loader: 'vue' }
  52. ]
  53. },
  54. vue: {
  55. // ... other vue options
  56. loaders: {
  57. js: 'coffee',
  58. html: 'raw'
  59. }
  60. },
  61. // 其他解决方案配置
  62. resolve: {
  63. // 从这里查找module
  64. root: 'E:/myproject/node_modules', // 绝对路径
  65. // 自动扩展文件后缀名,意味着我们require模块可以省略不写后缀名
  66. extensions: ['', '.js', '.json', '.scss'],
  67. // 模块别名定义,方便后续直接引用别名,无须多谢长长的地址
  68. alias: {
  69. AppStore: 'js/stores/AppStores.js', // 后续直接 require('AppStore') 即可
  70. ActionType: 'js/actions/ActionType.js',
  71. AppAction: 'js/actions/AppAction.js'
  72. }
  73. }
  74. };

常用的Webpack配置的更多相关文章

  1. 常用的webpack 配置

    const path = require('path'); let HtmlWebpackPlugin = require('html-webpack-plugin'); let VueLoaderP ...

  2. webpack配置命令

    从2015年开始,webpack就是当前最火的构建工具.跟着时代向前走.准没错.我们要追随大神的脚步.走在前端技术栈的前列.大神等等我. 由于webpack是基于nodejs环境下的.所以先安装nod ...

  3. Webpack配置示例和详细说明

    /* * 请使用最新版本nodejs * 默认配置,是按生产环境的要求设置,也就是使用 webpack -p 命令就可以生成正式上线版本. * 也可以使用 webpack -d -w 命令,生成用于开 ...

  4. webpack配置这一篇就够

    最近看了一篇好文,根据这个文章重新梳理了一遍webpack打包过程,以前的一些问题也都清楚了,在这里分享一下,同时自己也做了一些小的调整 原文链接:http://www.jianshu.com/p/4 ...

  5. 前端工程化(二)---webpack配置

    导航 前端工程化(一)---工程基础目录搭建 前端工程化(二)---webpack配置 前端工程化(三)---Vue的开发模式 前端工程化(四)---helloWord 继续上一遍的配置,本节主要记录 ...

  6. vue-cli中webpack配置详解

    vue-cli是构建vue单页应用的脚手架,命令行输入vue init <template-name> <project-name>从而自动生成的项目模板,比较常用的模板有we ...

  7. webpack配置实践

    首先我们的需求: 打包调试 提取公共代码 压缩 热替换 1.打包调试 第一步,我们在目标文件夹下安装webpack(假设已有package.json)npm i webpack@ -gcnpm i w ...

  8. 对vue中 默认的 config/index.js:配置的详细理解 -【以及webpack配置的理解】-config配置的目的都是为了服务webpack的配置,给不同的编译条件提供配置

    当我们需要和后台分离部署的时候,必须配置config/index.js: 用vue-cli 自动构建的目录里面  (环境变量及其基本变量的配置) var path = require('path') ...

  9. webpack配置指南

    Webpack已经出来很久了,相关的文章也有很多,然而比较完整的例子却不是很多,让很多新手不知如何下脚,下脚了又遍地坑 说实话,官方文档是蛮乱的,而且有些还是错的错的..很多配置问题只有爬过坑才知道 ...

随机推荐

  1. SQL Server中的高可用性(2)----文件与文件组

        在谈到SQL Server的高可用性之前,我们首先要谈一谈单实例的高可用性.在单实例的高可用性中,不可忽略的就是文件和文件组的高可用性.SQL Server允许在某些文件损坏或离线的情况下,允 ...

  2. JSON.parse()和JSON.stringify()

    1.parse 用于从一个字符串中解析出json 对象.例如 var str='{"name":"cpf","age":"23&q ...

  3. .NET 基础 一步步 一幕幕[面向对象之构造函数、析构函数]

    构造函数.析构函数 构造函数: 语法: //无参的构造函数 [访问修饰符] 函数名() :函数名必须与类名相同. //有参的构造函数 [访问修饰符] 函数名(参数列表):函数名必须与类名相同. 作用: ...

  4. 关于 devbridge-autocomplete 插件多选操作的实现方法

    目前据我所知最好用的 autocomplete 插件就是 jquery-ui 的 autocomplete 以及 devbridge 的 autocomplete 插件. 我最终选择了 devbrid ...

  5. MJRefresh 源码解读 + 使用

    MJRefresh这个刷新控件是一款非常好用的框架,我们在使用一个框架的同时,最好能了解下它的实现原理,不管是根据业务要求在原有的基础上修改代码,还是其他的目的,弄明白作者的思路和代码风格,会受益匪浅 ...

  6. [原]Redis主从复制各种环境下测试

    Redis 主从复制各种环境下测试 测试环境: Linux ubuntu 3.11.0-12-generic 2GB Mem 1 core of Intel(R) Core(TM) i5-3470 C ...

  7. Redis简单案例(二) 网站最近的访问用户

    我们有时会在网站中看到最后的访问用户.最近的活跃用户等等诸如此类的一些信息.本文就以最后的访问用户为例, 用Redis来实现这个小功能.在这之前,我们可以先简单了解一下在oracle.sqlserve ...

  8. java web学习总结(五) -------------------servlet开发(一)

    一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...

  9. Idea下用SBT搭建Spark Helloworld

    没用过IDEA工具,听说跟Eclipse差不多,sbt在Idea其实就等于maven在Eclipse.Spark运行在JVM中,所以要在Idea下运行spark,就先要安装JDK 1.8+ 然后加入S ...

  10. zookeeper集群的搭建以及hadoop ha的相关配置

    1.环境 centos7 hadoop2.6.5 zookeeper3.4.9 jdk1.8 master作为active主机,data1作为standby备用机,三台机器均作为数据节点,yarn资源 ...