·1.https://www.2cto.com/kf/201711/696035.html

2. http://blog.csdn.net/x550392236/article/details/78426883

3.https://www.cnblogs.com/mrszhou/p/7868800.html

4.https://www.cnblogs.com/Leo_wl/p/4862714.html

① 全局安装webpack

npm install webpack -g

安装webpack-cli

npm install  webpack-cli -g

②定位到根目录

cd ----

//安装到项目目录

npm install --save-dev webpack

npm install  webpack-cli -g

③使用npm init命令可以自动创建这个package.json文件

npm init

输入这个命令后,终端会问你一系列诸如项目名称,项目描述,作者等信息 回车默认

④我们在本项目中安装Webpack作为依赖包

npm install --save-dev webpack
创建两个文件夹,app文件夹和public文件夹,app文件夹用来存放原始数据和我们将写的JavaScript模块,public文件夹用来存放之后供浏览器读取的文件(包括使用webpack打包生成的js文件以及一个index.html文件)。接下来我们再创建三个文件:
  • index.html --放在public文件夹中;
  • Greeter.js-- 放在app文件夹中;
  • main.js-- 放在app文件夹中;

⑥index.html 放入

 <div id='root'>
</div>
<script src="bundle.js"></script>
// Greeter.js
module.exports = function() { var greet = document.createElement('div'); greet.textContent = "Hi there and greetings!"; return greet; };
 
//main.js
const greeter = require('./Greeter.js');
document.querySelector("#root").appendChild(greeter());
⑦ 创建webpack.config.js 放入

module.exports = {
devtool: 'eval-source-map',//生成source map 易于调试
entry: __dirname + "/app/main.js",
output: {
path: __dirname + "/public",
filename: "bundle.js"
},
devServer: {
contentBase: "./public", //本地服务器所加载的页面所在的目录
historyApiFallback: true, //不跳转
inline: true, //实时刷新
port: "8028" //端口 默认是8080
}
}

注:对小到中型的项目中,eval-source-map是一个很好的选项

  ⑧ 创建本地服务器 可以实时监听项目改变 运行

npm install --save-dev webpack-dev-server

⑨在webpack.config.js 变为

module.exports = {
devtool: 'eval-source-map',
entry: __dirname + "/app/main.js",
output: {
path: __dirname + "/public",
filename: "bundle.js"
},
devServer: {
contentBase: "./public", //本地服务器所加载的页面所在的目录
historyApiFallback: true, //不跳转
inline: true, //实时刷新
port: "8028" //端口 默认是8080
}
}

  ⑩在package.json中的scripts对象中添加如下命令,用以开启本地服务器:

"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "webpack",
"server": "webpack-dev-server --open"//
},

  

⑩②

在终端中输入npm run server 即可自动打开浏览器查看到运行的结果
 
二。

Babel的安装与配置

Babel其实是一个编译JavaScript的平台,它可以编译代码帮你达到以下目的:

  • 让你能使用最新的JavaScript代码(ES6,ES7...),而不用管新标准是否被当前使用的浏览器完全支持;
  • 让你能使用基于JavaScript进行了拓展的语言,比如React的JSX;

Babel的安装与配置

Babel其实是几个模块化的包,其核心功能位于称为babel-core的npm包中,webpack可以把其不同的包整合在一起使用,对于每一个你需要的功能或拓展,你都需要安装单独的包(用得最多的是解析Es6的babel-env-preset包和解析JSX的babel-preset-react包)。

我们先来一次性安装这些依赖包

npm install --save-dev babel-core babel-loader babel-preset-env babel-preset-react

  在webpack中配置Babel的方法如下【添加】:

module: {
rules: [
{
test: /(\.jsx|\.js)$/,
use: {
loader: "babel-loader",
options: {
presets: [
"env", "react"
]
}
},
exclude: /node_modules/
}
]
}

三。es6 语法使用

a.js

const animal = function Animal() {
this.say = function(anything) {
if(typeof anything != "undefined") {
return "动物说:" + anything;
}
}
}; const name = "ES6 动物啊";
export {
name,
animal
};

  b.js

import {
name,
animal
} from './Animal';
let monkey = new animal();
document.querySelector("#showES6").innerHTML = "ES6 import 内容:" + name + "===" + monkey.say("AA");

 附:

//全部导入
import people from './example' //有一种特殊情况,即允许你将整个模块当作单一对象进行导入
//该模块的所有导出都会作为对象的属性存在
import * as example from "./example.js"
console.log(example.name)
console.log(example.age)
console.log(example.getName()) //导入部分
import {name, age} from './example' // 导出默认, 有且只有一个默认
export default App // 部分导出
export class App extend Component {}; 1.当用export default people导出时,就用 import people 导入(不带大括号) 2.一个文件里,有且只能有一个export default。但可以有多个export。 3.当用export name 时,就用import { name }导入(记得带上大括号) 4.当一个文件里,既有一个export default people, 又有多个export name 或者 export age时,导入就用 import people, { name, age } 5.当一个文件里出现n多个 export 导出很多模块,导入时除了一个一个导入,也可以用import * as example

  

四。css  scs

安装【一定先按照style-loader  再安装 css-loader】
npm install --save-dev style-loader css-loader

 继续安装

npm install --save-dev postcss-loader autoprefixer

   安装node-sass 需要先安装python

npm install --save-dev node-sass
npm install --save-dev sass-loader

在 webpack.config,js 中添加

{
test: /\.(scss|css)$/,
use: [{
loader: "style-loader"
}, {
loader: "css-loader"
}, { //scss 变量【】
loader: 'postcss-loader',
options: {
plugins: [
require('autoprefixer')({
browsers: ['last 10 versions']
})
]
}
}, {
loader: "sass-loader"
}]
}

创建 一个index.scss

引入

//引入sass
import "./index.scss";

  

题外:

为什么我们要做三份 Webpack 配置文件

https://zhuanlan.zhihu.com/p/29161762

引入bootstrap:

https://blog.csdn.net/wild46cat/article/details/77662555

npm install bootstrap --save-dev

  1. import 'bootstrap/dist/css/bootstrap.min.css'
  2. import 'bootstrap/dist/js/bootstrap.min'

引入jquery npm install jquery@2.1.4 --save--dev

①:在配置问价中添加(webpack.config.js)

var webpack = require("webpack");

②module.exports 中添加

plugins: [
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
"window.jQuery": "jquery"
})
]

 啦啦啦啦:

vue-cli 构建项目

https://blog.csdn.net/hongchh/article/details/55113751


webpack 学习的更多相关文章

  1. 【原】webpack学习笔记

    之前在react的项目中有用过webpack,不过没有认真的去研究,这段时间又重新好好的学习一下webpack,发觉 webpack是一个很强大的东西.而且很好用,方便,接下来主要是做一下学习的笔记 ...

  2. webpack学习(入门基础)

    webpack的学习webpack是什么?1:加载模块(将JS.sass/less.图片等作为模块来处理使用) 2:进行打包 webpack的优势?1:webpack以commonJS(JS的规范)的 ...

  3. webpack学习笔记(二)-- 初学者常见问题及解决方法

    这篇文章是webpack学习第二篇,主要罗列了本人在实际操作中遇到的一些问题及其解决方法,仅供参考,欢迎提出不同意见. 注:本文假设读者已有webpack方面相关知识,故文中涉及到的专有名词不做另外解 ...

  4. webpack学习笔记一:安装webpack、webpack-dev-server、内存加载js和html文件、loader处理非js文件

    一 .webpack学习环境准备: 1:window系统 2:安装node.js  官方网址 下载好后下一步下一步安装即可 安装步骤略过....... 3:nrm的安装 打开cmd命令控制台 输入:n ...

  5. Webpack学习-Plugin

    原文地址:http://wushaobin.top/2019/03/15/webpackPlugin/ 什么是Plugin? 在Webpack学习-工作原理(上)一文中我们就已经介绍了Plugin的基 ...

  6. webpack 学习资料

    webpack 学习资料 webpack 学习资料 网址 webpack 中文版 https://webpack.docschina.org/configuration/dev-server/

  7. webpack学习(六)—webpack+react+es6(第3篇)

    接上篇 : webpack学习(六)—webpack+react+es6(第2篇) 上篇其实是有问题的,问题在取服务器数据这块.this.props 表示那些一旦定义,就不再改变的特性,而 this. ...

  8. webpack学习(六)—webpack+react+es6(第2篇)

    接上篇        webpack学习(五)—webpack+react+es6(第1篇) 本文做个简单的图片加文字的页面.其中,配置文件跟上篇一致.项目结构: index.html <!DO ...

  9. webpack学习(五)—webpack+react+es6(第1篇)

    如果你看过webpack学习系列的前一个文章,接下来做的东西会比较简单 :webpack学习(四)— webpack-dev-server react发展的很快,现在大部分开发react相关的项目,都 ...

  10. webpack学习(三)

    前篇:webpack学习(二) jquery不需要在项目中自己下载,而是作为一个模块引入.jquery的存放路径是在 node_modules目录下.1.首先给项目安装jquery,npm insta ...

随机推荐

  1. Dom4j解析、生成Xml

    1以下代码未Xml的解析和生成代码 <?xml version="1.0" encoding="UTF-8"?> <users> < ...

  2. Spring和SpringBoot比较,解惑区别

    1.概述: 对于Spring和SpringBoot到底有什么区别,我听到了很多答案,刚开始迈入学习SpringBoot的我当时也是一头雾水,随着经验的积累.我慢慢理解了这两个框架到底有什么区别,我相信 ...

  3. python入门-直方图

    使用的是pygal函数库 所以需要先安装 1 安装库文件 pip install pygal=1.7 2 创建骰子类 from random import randint class Die(): # ...

  4. SD-WAN供应商列表

    SD-WAN的一个重要思想是,可以使用任何类型的多个物理WAN链路来承载流量,而无需网络工程师进行大量工程设计.相反,SD-WAN解决方案在物理基础设施之上运行覆盖(隧道),抽象出实际链接. SD-W ...

  5. 30. linux用su oracle 切换用户报“连接数据库报-bash-4.1$”处理方式

    直接在-bash-4.1$后面加上export PS1="[\u@\h \w]"即可,如下: [root@localhost usr]# su oracle-bash-4.1$ e ...

  6. ASP.NET前台代码绑定后台变量方法总结

    经常会碰到在前台代码中要使用(或绑定)后台代码中变量值的问题.一般有<%= str%>和<%# str %>两种方式,这里简单总结一下.如有错误或异议之处,敬请各位指教. 一方 ...

  7. maven的环境变量配置

    一: 首先下载maven, 下载地址:http://maven.apache.org/download.html 打开这个连接:选择File下面的apache-maven-3.2.1-bin.zip链 ...

  8. li直接1px 像素的原因

    1.由于空白节点(多由于Enter造成),li不换行就可以解决问题. Internet Explorer会忽略节点之间生成的空白节点,其它浏览器不会忽略(可以通过检测节点类型,过滤子节点) 2.完美解 ...

  9. HashSet和LinkedHashSet解析

    一.简介 1.Set概念 Set可以理解为集合,非常类似数据概念中的集合,集合三大特征:1.确定性:2.互异性:3.无序性,因此Set实现类也有类似的特征. 2.HashSet HashSet继承自A ...

  10. How to Pronounce TH after N or Z

    How to Pronounce TH after N or Z Share Tweet Share Tagged With: Linking Consonant to Consonant The T ...