cnpm install css-loader --save-dev    //css-loader 是将css打包进js

cnpm install style-loader --save-dev  //style-loader 将css通过require方式引入进来

cnpm install sass-loader node-sass  --save-dev //同时安装sass 和sass-loader

cnpm install extract-text-webpack-plugin --save-dev //把css从js中提取出来

目录结构(publi为src编译生成的文件)

html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
</head>
<link rel="stylesheet" type="text/css" href="public/css/index.css" />
<body>
<div id="app">6r</div>
<p id="demo">456</p>
</body>
<script type="text/javascript" src="public/js/jquery.min.js"></script>
<script type="text/javascript" src="public/js/index.js"></script>
<!-- assets是通过publicPath虚构出来的暂存空间,它不直接在硬盘内存中,通过webpack-dev-server来运行 -->
</html>

index.scss

$col:pink;
@import "./demo"; //导入css
body{
font-size: 900%;
#app{color:$col;}
}

demo.css

  #demo{color:blue;}

index.js

require("../css/index.scss"); 

$('#app').html("1334");
$("#app").click(function(event){
alert(123)
});

webpack.config.js

var webpack = require("webpack");
var webpckDevServer = require("webpack-dev-server");
var ExtractTextPlugin = require('extract-text-webpack-plugin'); //抽离css插件
var extractCss = new ExtractTextPlugin("css/index.css"); //实例化,并并填写输出的一个路径[]中表示输出默认名称,这个目录相对于提出的那个目录
module.exports = {
entry:{
index:__dirname + "/src/js/index.js",//入口文件 webpack-dev-server 实时刷新监控的目录
jq:['jquery'] //这是个多入口,可以写多个依赖的库,例如jq:['jquery','react'],这里引用了就不用在index.js里面用require或者用es6 import引用
},
output: {
path: __dirname + "/public/",
filename: "js/index.js",
publicPath: '/assets/' //打开webpack-dev-server 服务器工具时可以再index里面引用此地址,打开速度会快一点,另外他不是直接在内存中存放而是先在webpack的虚拟内存中暂存,所以在webpack未编译之前能够运行,如果直接写实体目录则不经过webpack打包编译,浏览器是识别不了的,所以先放在这个虚拟目录里,因为是虚拟目录,所以你看不到他的编译文件
},
devServer: {
contentBase: "./",
//根目录
host: '192.168.199.171',
//ip设置 要相对的进行改变
port: "80",
//端口
colors: true,
open: true //自动打开浏览器
},
module: {
loaders: [{
test: /\.css$/,
//匹配.css文件
loader: ExtractTextPlugin.extract("style-loader", "css-loader")
},
{
test: /\.scss$/,
loader: ExtractTextPlugin.extract("style-loader", "css!sass")
}]
},
plugins: [
extractCss,
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
} //自动输出压缩后的js
}),
// 声明jquery为全局变量(不建议使用,会污染,知道这个写法就好) ,在多个文件打包时声明全局变量会影响到代码的重叠,因为全局
// new webpack.ProvidePlugin({
// $:'jquery'
// }),
// 拆分插件
new webpack.optimize.CommonsChunkPlugin({
name:'jq', // 上面入口定义的节点组
filename:'js/jquery.min.js' //最后生成的文件名,生成的位置和引用的位置同目录 与上面的jq['jquery','react']不同这是一个单出口
})
    //第二种写法 new webpack.optimize.CommonsChunkPlugin('jq', 'js/jquery.min.js' ) 
    //还有一种就是什么都不写,只在entry:入口加一个入口文件( jq:['jquery'])就可以
] }

package.json

{
"name": "webp2",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"www": "cnpm run demo && cnpm run devServer",
"demo": "webpack --watch --progress -d -p --color",
"demo2": "webpack --config webpack.config123.js --watch --progress -d -p --color",
"start": "webpack --watch --progress -d -p --color",
"devServer": "webpack-dev-server --inline --hot"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"css-loader": "^0.26.1",
"extract-text-webpack-plugin": "^1.0.1",
"jquery": "^3.1.1",
"node-sass": "^4.0.0",
"sass-loader": "^4.1.0",
"style-loader": "^0.13.1",
"uglify-js": "^2.7.5",
"webpack": "^1.14.0",
"webpack-dev-server": "^1.16.2"
}
}

3、CommonChunkPlugin提取公共js-以提取一个jquery为例的更多相关文章

  1. webpack提取公共js代码

    webpack打包js代码与提取公共js代码分析 webpack提取公共js代码示例 一.分析 webpack默认打包js代码时,是将从入口js模块开始,将入口js模块所依赖的js以及模块逐层依赖的模 ...

  2. 记webpack下提取公共js代码的方法

    环境: webpack4.6 + html-webpack-plugin 多页面多入口 经多次研究,稍微靠谱可用的配置 optimization: { splitChunks: { minSize: ...

  3. jQuery 对AMD的支持(Require.js中如何使用jQuery)

    AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一个可用的模块化 JavaScript 的解决方案. AMD 模块格 ...

  4. 4、CommonChunkPlugin提取公共js-提取多个

    cnpm install css-loader --save-dev    //css-loader 是将css打包进js cnpm install style-loader --save-dev   ...

  5. webpack学习笔记--提取公共代码

    为什么需要提取公共代码 大型网站通常会由多个页面组成,每个页面都是一个独立的单页应用. 但由于所有页面都采用同样的技术栈,以及使用同一套样式代码,这导致这些页面之间有很多相同的代码. 如果每个页面的代 ...

  6. [转] 用webpack的CommonsChunkPlugin提取公共代码的3种方式

    方式一,传入字符串参数 new webpack.optimize.CommonsChunkPlugin(‘common.js’), // 默认会把所有入口节点的公共代码提取出来,生成一个common. ...

  7. 详解用webpack的CommonsChunkPlugin提取公共代码的3种方式(注意webpack4.0版本已不存在)

    Webpack 的 CommonsChunkPlugin 插件,负责将多次被使用的 JS 模块打包在一起. CommonsChunkPlugin 能解决的问题 在使用插件前,考虑几个问题: 对哪些 c ...

  8. 基于webpack实现多html页面开发框架六 提取公共代码

    一.解决什么问题 1.如果a.js和b.js都引用了common.js,那在打包的时候common.js会被重复打入到a.js和b.js,造成重复打包 2.单独打包common.js对性能有帮助,浏览 ...

  9. springcloud config 提取公共参数

    每个微服务都有自己的配置文件application-local.yml和bootstrap.yml, 这个两个配置文件的读取顺序是先读取bootstrap.yml文件,在读取application-l ...

随机推荐

  1. oracle行转列,列转行

    多行转字符串这个比较简单,用||或concat函数可以实现 SQL Code select concat(id,username) str from app_userselect id||userna ...

  2. Laravel初级教程浅显易懂适合入门

    整理了一些Laravel初级教程,浅显易懂,特适合入门,留给刚学习laravel想快速上手有需要的朋友 最适合入门的laravel初级教程(一)序言 最适合入门的laravel初级教程(二)安装使用 ...

  3. 类似CFS程式发布注意事项

    1.CFS 此AP 程式的验证方式为Forms 验证.需要在IIS 中做如下设置(Forms 身份验证,配套的Web.config 中要有对应节点代码,后台代码中要有获取方式) 2.Forms 身份验 ...

  4. golang使用vet进行语法检查

    go tool vet是你的好朋友,不要忽视它. vet是一个优雅的工具,每个Go开发者都要知道并会使用它.它会做代码静态检查发现可能的bug或者可疑的构造.vet是Go tool套件的一部分,我们会 ...

  5. 简单mysql常用命令

    在命令行 输入 mysql -uroot -p123456 (-u账号 -p密码)登入mysql服务器 1.设置mysql密码set password for 'root'@'localhost' = ...

  6. git更新代码报错,error: The following untracked working tree files would be overwritten by ch

    git忽略大小写导致的, git config --add core.ignorecase true

  7. HTML输入框的默认显示内容

    在某些情况下我们会需要在输入框里默认显示一些内容,比如在登录的时候不在输入框前面显示用户名和密码,直接在输入框里显示,这时只要在input的标签里添加属性  placeholder="用户名 ...

  8. jQ live用法

    我们给元素绑定单击事件.用得最多的都是$("#id").click(function(){}); 但我们动态添加的元素.这样绑定是不行的.必须借助live  $("#id ...

  9. EOJ Monthly 2018.11 猜价格 (模拟)

    分三种情况: 1.k=1.此时每次都说反话,反着二分即可. 2.1<k <= n.那么在前n次问答中一定会出现一次错误,通过不断输出1找出那个错误发生的位置(若回答是>那这就是错误) ...

  10. 谷歌浏览器 URL无法访问

    使用谷歌浏览器老是会崩溃,或者访问的时候发现“URL无法访问”等失败的问题,连淘宝都没法访问,这个让人很恼火, 最后在扩展应用那里搜到个URL的redirect,问题解决了,~~发现没有再出现类似问题 ...