常用的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已经出来很久了,相关的文章也有很多,然而比较完整的例子却不是很多,让很多新手不知如何下脚,下脚了又遍地坑 说实话,官方文档是蛮乱的,而且有些还是错的错的..很多配置问题只有爬过坑才知道 ...
随机推荐
- NPM (node package manager) 入门 - 基础使用
什么是npm ? npm 是 nodejs 的包管理和分发工具.它可以让 javascript 开发者能够更加轻松的共享代码和共用代码片段,并且通过 npm 管理你分享的代码也很方便快捷和简单. 截至 ...
- Azkaban源码学习笔记
1. ConnectorParams (interface): 定义了各种常量参数,没有声明任何方法. 2. ExecutorServlet.java类 2.1 继承类HttpServlet和接口 ...
- Golang, 以17个简短代码片段,切底弄懂 channel 基础
(原创出处为本博客:http://www.cnblogs.com/linguanh/) 前序: 因为打算自己搞个基于Golang的IM服务器,所以复习了下之前一直没怎么使用的协程.管道等高并发编程知识 ...
- Web性能优化:What? Why? How?
为什么要提升web性能? Web性能黄金准则:只有10%~20%的最终用户响应时间花在了下载html文档上,其余的80%~90%时间花在了下载页面组件上. web性能对于用户体验有及其重要的影响,根据 ...
- 游戏服务器菜鸟之C#初探一游戏服务
本人80后程序猿一枚,原来搞过C++/Java/C#,因为工作原因最后选择一直从事C#开发,因为读书时候对游戏一直比较感兴趣,机缘巧合公司做一个手游的项目,我就开始游戏服务器的折腾之旅. 游戏的构架是 ...
- 探索ASP.NET MVC5系列之~~~5.缓存篇(页面缓存+二级缓存)
其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...
- [.NET] C# 知识回顾 - 委托 delegate (续)
C# 知识回顾 - 委托 delegate (续) [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6046171.html 序 上篇<C# 知识回 ...
- Xamarin+Prism开发详解五:页面布局基础知识
说实在的研究Xamarin到现在,自己就没设计出一款好的UI,基本都在研究后台逻辑之类的!作为Xamarin爱好者,一些简单的页面布局知识还是必备的. 布局常见标签: StackLayout Abso ...
- Swift enum(枚举)使用范例
//: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...
- 前端HTML5几种存储方式的总结
接下来要好好总结一些知识,秋招来啦...虽然有好多知识都不大会,但是还是要努力一下,运气这种东西,谁知道呢~ 总体情况 h5之前,存储主要是用cookies.cookies缺点有在请求头上带着数据,大 ...