常用的Webpack配置
官方文档:
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文件,并且写入:
var webpack = require('webpack'); var commonsPlugin = new webpack.optimize.CommonsChunkPlugin('common.js'); module.exports = { // 插件项 plugins: [commonsPlugin], // 页面入口文件配置 entry: { index: './src/js/page/index.js', component: './src/js/page/component.js' }, // 入口文件输出配置 output: { path: 'dist/js/page', filename: '[name].js' }, module: { // 加载器配置 loaders: [ // .css文件使用 style-loader 和 css-loader 来处理 { test: /\.css$/, loader: 'style-loader!css-loader' }, // .js文件使用 jsx-loader 来编译处理 { test: /\.js$/, loader: 'jsx-loader?harmony' }, // .scss文件使用style-loader、css-loader和sass-loader来编译处理 // loader可以省略不写,多个loader之间用!连接 { test: /\.scss$/, loader: 'style!css!sass?sourceMap' }, // 图片文件使用 url-loader 来处理,小于8kb的直接转为base64 // url-loader将样式中引用到的图片转为模块来处理,使用该加载器需要先进性安装: // npm install url-loader --save-dev { test: /\.(png|jpg)$/, loader: 'url-loader?limit=8192' } ] }, // 其他解决方案配置 resolve: { // 从这里查找module root: 'E:/myproject/node_modules', // 绝对路径 // 自动扩展文件后缀名,意味着我们require模块可以省略不写后缀名 extensions: ['', '.js', '.json', '.scss'], // 模块别名定义,方便后续直接引用别名,无须多谢长长的地址 alias: { AppStore: 'js/stores/AppStores.js', // 后续直接 require('AppStore') 即可 ActionType: 'js/actions/ActionType.js', AppAction: 'js/actions/AppAction.js' } } };
配置信息的参数“?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加载器时:
/** * Created by user on 2016/11/17. */ var webpack = require('webpack'); var commonsPlugin = new webpack.optimize.CommonsChunkPlugin('common.js'); // 命令行下载关于vue加载器的模块: // npm install extract-text-webpack-plugin --save-dev var ExtractTextPlugin = require('extract-text-webpack-plugin'); module.exports = { // 插件项 /** * 使用webpack的DefinePlugin来指定生产环境,以便在压缩时可以让UglifyJS自动删除代码块内的警告语句 */ plugins: [ new webpack.DefinePlugin({ 'process.env': { NODE_ENV: '"production"' } }), new webpack.optimize.UglifyJsPlugin({ compress: { warnings: false } }) ], // 页面入口文件配置 entry: { index: './src/js/page/index.js', component: './src/js/page/component.js' }, // 入口文件输出配置 output: { path: 'dist/js/page', filename: '[name].js' }, module: { // 加载器配置 loaders: [ // .css文件使用 style-loader 和 css-loader 来处理 { test: /\.css$/, loader: 'style-loader!css-loader' }, // .js文件使用 jsx-loader 来编译处理 { test: /\.js$/, loader: 'jsx-loader?harmony' }, // .scss文件使用style-loader、css-loader和sass-loader来编译处理 // loader可以省略不写,多个loader之间用!连接 { test: /\.scss$/, loader: 'style!css!sass?sourceMap' }, // 图片文件使用 url-loader 来处理,小于8kb的直接转为base64 // url-loader将样式中引用到的图片转为模块来处理,使用该加载器需要先进性安装: // npm install url-loader --save-dev { test: /\.(png|jpg)$/, loader: 'url-loader?limit=8192' }, { test: /\.vue$/, loader: 'vue' } ] }, vue: { // ... other vue options loaders: { js: 'coffee', html: 'raw' } }, // 其他解决方案配置 resolve: { // 从这里查找module root: 'E:/myproject/node_modules', // 绝对路径 // 自动扩展文件后缀名,意味着我们require模块可以省略不写后缀名 extensions: ['', '.js', '.json', '.scss'], // 模块别名定义,方便后续直接引用别名,无须多谢长长的地址 alias: { AppStore: 'js/stores/AppStores.js', // 后续直接 require('AppStore') 即可 ActionType: 'js/actions/ActionType.js', AppAction: 'js/actions/AppAction.js' } } };
常用的Webpack配置的更多相关文章
- 常用的webpack 配置
const path = require('path'); let HtmlWebpackPlugin = require('html-webpack-plugin'); let VueLoaderP ...
- webpack配置命令
从2015年开始,webpack就是当前最火的构建工具.跟着时代向前走.准没错.我们要追随大神的脚步.走在前端技术栈的前列.大神等等我. 由于webpack是基于nodejs环境下的.所以先安装nod ...
- Webpack配置示例和详细说明
/* * 请使用最新版本nodejs * 默认配置,是按生产环境的要求设置,也就是使用 webpack -p 命令就可以生成正式上线版本. * 也可以使用 webpack -d -w 命令,生成用于开 ...
- webpack配置这一篇就够
最近看了一篇好文,根据这个文章重新梳理了一遍webpack打包过程,以前的一些问题也都清楚了,在这里分享一下,同时自己也做了一些小的调整 原文链接:http://www.jianshu.com/p/4 ...
- 前端工程化(二)---webpack配置
导航 前端工程化(一)---工程基础目录搭建 前端工程化(二)---webpack配置 前端工程化(三)---Vue的开发模式 前端工程化(四)---helloWord 继续上一遍的配置,本节主要记录 ...
- vue-cli中webpack配置详解
vue-cli是构建vue单页应用的脚手架,命令行输入vue init <template-name> <project-name>从而自动生成的项目模板,比较常用的模板有we ...
- webpack配置实践
首先我们的需求: 打包调试 提取公共代码 压缩 热替换 1.打包调试 第一步,我们在目标文件夹下安装webpack(假设已有package.json)npm i webpack@ -gcnpm i w ...
- 对vue中 默认的 config/index.js:配置的详细理解 -【以及webpack配置的理解】-config配置的目的都是为了服务webpack的配置,给不同的编译条件提供配置
当我们需要和后台分离部署的时候,必须配置config/index.js: 用vue-cli 自动构建的目录里面 (环境变量及其基本变量的配置) var path = require('path') ...
- webpack配置指南
Webpack已经出来很久了,相关的文章也有很多,然而比较完整的例子却不是很多,让很多新手不知如何下脚,下脚了又遍地坑 说实话,官方文档是蛮乱的,而且有些还是错的错的..很多配置问题只有爬过坑才知道 ...
随机推荐
- 如何在高并发环境下设计出无锁的数据库操作(Java版本)
一个在线2k的游戏,每秒钟并发都吓死人.传统的hibernate直接插库基本上是不可行的.我就一步步推导出一个无锁的数据库操作. 1. 并发中如何无锁. 一个很简单的思路,把并发转化成为单线程.Jav ...
- Unity游戏内版本更新
最近研究了一下游戏内apk包更新的方法. ios对于应用的管理比较严格,除非热更新脚本,不太可能做到端内大版本包的更新.然而安卓端则没有此限制.因此可以做到不跳到网页或应用商店,就覆盖更新apk包. ...
- 07.LoT.UI 前后台通用框架分解系列之——强大的文本编辑器
LOT.UI分解系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#lotui LoT.UI开源地址如下:https://github.com/du ...
- 【.net 深呼吸】程序集的热更新
当一个程序集被加载使用的时候,出于数据的完整性和安全性考虑,程序集文件(在99.9998%的情况下是.dll文件)会被锁定,如果此时你想更新程序集(实际上是替换dll文件),是不可以操作的,这时你得把 ...
- 操作系统篇-分段机制与GDT|LDT
|| 版权声明:本文为博主原创文章,未经博主允许不得转载. 一.前言 在<操作系统篇-浅谈实模式与保护模式>中提到了两种模式,我们说在操作系统中,其实大部分时间是待在保护模式中的. ...
- Angular源码分析之$compile
@(Angular) $compile,在Angular中即"编译"服务,它涉及到Angular应用的"编译"和"链接"两个阶段,根据从DO ...
- “老坛泡新菜”:SOD MVVM框架,让WinForms焕发新春
火热的MVVM框架 最近几年最热门的技术之一就是前端技术了,各种前端框架,前端标准和前端设计风格层出不穷,而在众多前端框架中具有MVC,MVVM功能的框架成为耀眼新星,比如GitHub关注度很高的Vu ...
- Flexible 弹性盒子模型之CSS flex-flow
实例 让弹性盒的元素以相反的顺序显示,且在必要的时候进行拆行: display:flex; flex-flow:row-reverse wrap; 效果预览 浏览器支持 表格中的数字表示支持该属性 ...
- 微信小程序教程汇总
目前市面上在内测期间出来的一些实战类教程还是很不错的,主要还是去快速学习小程序开发的整体流程,一个组件一个组件的讲的很可能微信小程序一升级,这个组件就变了,事实本就如此,谁让现在是内测呢.我们不怕,下 ...
- 【干货分享】流程DEMO-费用报销
流程名: 费用报销 业务描述: 流程发起时,要选择需要关联的事务审批单,会检查是否超申请,如果不超申请,可以直接发起流程,如果超了申请,需要检查预算,如果预算不够,将不允许发起报销申请,如果预算够用, ...