1、webpack对脚本的处理

  1、Js用什么loader加载?

    1>webpack 本身就支持js的加载,

    2>通过babel-loader ES2015 加载js,再用 babel-polyfil 做兼容性适配

  2、如何处理多个入口文件?

    将entry 写成一个对象的形式:

    entry: {

      'common': ['./src/page/common/index.js'],

      'index': ['./src/page/index/index.js'],

      }

  3、output要分文件夹存放目标文件,如何设置?

    output: {

      path: path.resolve(__dirname, 'dist'),

      publicPath:'/dist/',

      filename: 'js/[name].js'

      },

    这样配置的文件会在根目录编译生成dist文件夹,在dist文件夹下创建js文件夹存放打包的js文件

  4、如何提取公共模块?

    entry: {

      'common': ['./src/page/common/index.js']

      }

    plugins: [

      new webpack.optimize.CommonsChunkPlugin({

         name: "common",

         filename: "js/base.js"

       }),

      ]

2、webpack对样式的处理

  1、样式使用怎样的loader?

  2、webpack将css打包成js模块,但是css不想在js运行完才开始加载,想把css打包成单独的css文件该如何处理?

var ExtractTextPlugin = require("extract-text-webpack-plugin");
var config = {
module: {
loaders: [
{
test: /\.css$/,
loader: ExtractTextPlugin.extract("style-loader","css-loader")
},
{
test: /\.(png|gif|jpg|woff|svg|eot|ttf|ico)\??.*$/,
loader: "url-loader?limit=100&name=resource/[name].[ext]"
},
{
test:/\.string$/,
loader:'html-loader',
query:{
//告诉html-loader在加载文件的时候做最小化压缩
minimize:true,
//指定是否要删除属性上的引号
removeAttributeQuotes:false
}
}
]
},
plugins: [
//把CSS单独打包到文件里
new ExtractTextPlugin('css/[name].css'),
//独立通用模块到js/base.js
new webpack.optimize.CommonsChunkPlugin({
name: "common",
filename: "js/base.js"
}),
//html模板的处理
new HtmlWebpackPlugin(getHtmlConfig('index',"首页")),
]
}

  3、webpack对html模板如何处理?

  不对html处理时,会出现什么问题:

  1、在引入css文件时,在后面是需要加版本号的,并且这个版本号是不能用手工来维护的,每次上线会把这个版本号改掉

  2、html是在src文件夹下,没有在打包形成的dist文件夹下,在发布的时候会只发布dist文件夹下,而src文件夹下是不管的,所以文件的位置也是不对的

  处理方法: 

  const HtmlWebpackPlugin = require('html-webpack-plugin');
//获取html-webpack-plugin参数的方法
var getHtmlConfig=function (name,title) {
return {
template:'./src/view/'+name+'.html',
filename:'view/'+name+'.html',
favicon:'./favicon.ico',
//inject:true时,不用手动引入js与css文件,它会自动的注入到html页面
inject:true,
//hash会在我们引入的js与css后面加一个版本号
hash:true,
chunks:['common',name],
title:title
};
};
var config = {
plugins: [
  //html模板的处理
  new HtmlWebpackPlugin(getHtmlConfig('index',"首页")),
  new HtmlWebpackPlugin(getHtmlConfig('list',"商品列表")),
  new HtmlWebpackPlugin(getHtmlConfig('detail',"商品详情"))
] 
}

  4、webpack-dev-server 自动编译处理

//环境变量的配置dev /online
var WEBPACK_ENV=process.env.WEBPACK_ENV||'dev';
if('dev'===WEBPACK_ENV){
config.entry.common.push('webpack-dev-server/client?http://localhost:8088/');
  //common 模块时公共模块,已经打包进每一个页面,而webpack-dev-server 需要监控到每一个页面的变化,所以将webpack-dev-server路径添加进common的路径数组中
}

webpack的配置处理的更多相关文章

  1. webpack常用配置总结

    1. webpack简介 webpack 是一个模块打包工具.它使得模块相互依赖并且可构建等价于这些模块的静态资源.相比于已经存在的模块打包器(module bundler),webpack的开发动机 ...

  2. webpack安装配置使用教程详解

    webpack安装配置使用教程详解 www.111cn.net 更新:2015-09-01 编辑:swteen 来源:转载 本文章来为各位详细的介绍一下关于webpack安装配置使用教程吧,这篇文章对 ...

  3. webpack实用配置

    前面的话 上文介绍了webpack入门,本文将详细介绍webpack实用配置 版本号 以entry.js打包为bundle.js为例,出口的filename可以设置为[id].[name].[hash ...

  4. 在找一份相对完整的Webpack项目配置指南么?这里有

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

  5. webpack安装配置

    webpack安装 1.安装之前你必须要安装node.js,如果你没安装可以在node.js网去下载node.js 2.全局安装webpack,打开cmd输入npm install webpack - ...

  6. vue-cli+webpack打包配置

    vue-cli+webpack打包配置 一: 目录结构: ├── README.md ├── build │ ├── build.js │ ├── check-versions.js │ ├── ut ...

  7. Webpack的配置与使用

    一.什么是Webpack?     WebPack可以看做是模块打包机.用于分析项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),将 ...

  8. 深入浅出的webpack构建工具---webpack基本配置(一)

    深入浅出的webpack构建工具---webpack基本配置(一) 阅读目录 一:webpack入门构建: 1. 安装webpack到全局 2. 安装webpack到本项目. 3. 如何使用webpa ...

  9. webpack详细配置解析

    阅读本文之前,先看下面这个webpack的配置文件,如果每一项你都懂,那本文能带给你的收获也许就比较有限,你可以快速浏览或直接跳过:如果你和十天前的我一样,对很多选项存在着疑惑,那花一段时间慢慢阅读本 ...

  10. webpack快速入门——实战技巧:webpack模块化配置

    首先在根目录,新建一个webpack_config文件夹,然后新建entry_webpack.js文件,代码如下: const entry ={}; //声明entry变量 entry.path={ ...

随机推荐

  1. 非关系型数据库---Memcached

    一.概述 1.Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载: 2.Memcached通过 在内存中缓存对象和数据 来减少读取数据库的次数,从而提升网站的 ...

  2. Linux Shell中的反引号,单引号,双引号

    反引号位 (`) 位于键盘的Tab键的上方.1键的左方.注意与单引号(')位于Enter键的左方的区别. 在Linux中起着命令替换的作用.命令替换是指shell能够将一个命令的标准输出插在一个命令行 ...

  3. Spark Mllib里如何采用保序回归做回归分析(图文详解)

    不多说,直接上干货! 相比于决策树,保序回归的应用范围没有决策树算法那么广泛. 特别在数据处理较为庞大的时候,采用保序回归做回归分析,可以极大地节省资源,从而提高计算效率. 保序回归的思想,是对数据进 ...

  4. 从Flux到Redux详解单项数据流

    从Flux到Redux是状态管理工具的演变过程,但两者还是有细微的区别的.但是最核心的都还是观察者模式的应用. 一.Flux 1. Flux的处理逻辑 通俗来讲,应用的状态被放到了store中,组件是 ...

  5. jstl core and jstl fn

    jstl标签使用时必须加taglib:<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core&quo ...

  6. pat1061. Dating (20)

    1061. Dating (20) 时间限制 50 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Sherlock Holmes ...

  7. android 开发-Toast控件的实现

    Toast吐司: Toast内容简单,不做过多介绍,Toast支持自带简单吐司,自定义吐司.内容简单可见代码,详见API.A toast provides simple feedback about ...

  8. android 开发AlertDialog.builder对话框的实现

    AndroidAPI提供了Dialog对话框控件,但google明确指出不建议开发者只是使用Dialog来创建对话框,而应该自定义对话框或者使用API中提供的Dialog的子类,如AlertDialo ...

  9. 谷歌插件 JSON-Handle

    JSON-Handle http://jsonhandle.sinaapp.com/ 点击下载 插件下载后,在浏览器输入:chrome://extensions/ 将下载后的文件拖入 chrome浏览 ...

  10. Photoshop之切图

    基本(繁琐)操作: 切JPG图(即带背景的图): 1.         选切片工具(另外,切片选择工具能选择切片和删除切片),切 2.         存储为Web所用格式(快捷键Ctrl + Shi ...