安装nodejs
Https://nodejs.org/en/
npm
- NodeJS包管理和分发工具
- Http://npmjs.org/
npm常用命令
npm init
创建package.json文件npm install <module-name> -g/--save-dev/--save
安装模块npm update <module-name>
更新模块npm uninstall <module-name>
卸载模块
webpack
webpack简介
- 一款模块加载器兼打包工具
- 支持AMD/CMD写法
- 处理依赖关系,然后解析出模块之间的依赖,将代码打包
- 把各种资源都作为模块来使用和处理
- 比如js、css、less、sass等
- http://webpack.github.io/
安装webpack
npm install webpack -g
- 安装后就在命令行中使用webpack命令
把依赖写入package.json
npm install webpack --save-dev
webpack命令
- 打包命令
webpack index.js output.js
- Index.js 打包的入口文件
- output.js 打包后的文件
webpack js/index.js build/build.js
如果需要打包多个js文件到一个js文件,需要建立依赖关系
比如js文件夹中有index.js和app.js
app.js中
12var str = "hello webpackkkkk";module.exports = str;index.js中
12var s = require("./app.js");document.write(s);然后执行
webpack js/index.js build/build.js
index.html
12345678910<html lang="en"><head><meta charset="UTF-8"><title>Title</title></head><body><script src="build/build.js"></script></body></html>
用ES6的模块化语法
demo.js
12let str = "ES6";export default str;index.js
12import s1 from "./demo.js"document.write(s1);然后执行
webpack js/index.js build/build.js
效果一样
- 打包命令
模块加载器(loader)
各种不同文件类型的资源,webpack有对应的模块加载器
安装加载器
npm install xxx-loader --save-dev
例如:
npm install css-loader style-loader --save-dev
处理css文件和样式
webpack配置说明
webpack的配置项说明
entry: 打包的入口文件 string Object
output: 配置打包结果 Object
- path:定义输出文件路径
- filename:指定打包文件名称
module:定义了对模块的处理逻辑 Object
rules:定义了一系列的加载器 Array
[{
test:正则,匹配到的文件后缀名
loader/loaders:string | array,处理匹配到的文件
include:string | array 包含的文件夹
exclude: string | array 排除的文件夹
}]
resolve:{
extensions:[“,’.js’”,”.css”,”jsx”] //自动补全识别后缀
}
热加载
先在全局安装
npm install webpack-dev-server -g
安装到依赖里面
npm install webpack-dev-server --save-dev
然后运行
webpack-dev-server --open
浏览器会自动打开端口被占用的话可以用
webpack-dev-server --port 8081
来修改端口号然后修改package.json
"scripts": { "start": "webpack-dev-server" }
再运行
npm start
就可以开启服务器若报一堆错误,请在当前目录下安装webpack
npm install webpack
热加载的配置如下
12345678910111213141516171819202122const path = require('path');const webpack = require('webpack'); //1.引入webpackmodule.exports = {entry: './index.js',//2.添加插件plugins: [new webpack.HotModuleReplacementPlugin() // Enable HMR],output: {filename: 'main.js',path: path.resolve(__dirname, 'dist'), //路径是个坑,不能写相对路径publicPath: '/'},devServer: {hot: true, //3. Tell the dev-server we're using HMRcontentBase: path.resolve(__dirname, 'dist'),publicPath: '/'}};又发现一个有趣的事情
在命令行里执行
webpack-dev-server --hot --inline
然后打开localhost:8080 发现是目录界面
原因是配置有问题
|
|
当我这么配置
|
|
再执行webpack-dev-server --hot --inline
的时候就会出现正常的页面,而且支持热加载,
下面是全的。
|
|
不过我们要想执行npm start
命令实现热加载还需要在webpack.config.js里面进行相关配置
自动生成index.html页面
需要使用html-webpack-plugin插件
首先安装插件
npm install html-webpack-plugin --save-dev
然后配置
1234567891011121314151617const path = require("path");//1.引入插件const HtmlWebpackPlugin = require("html-webpack-plugin");module.exports = {entry:"./src/index.js",output:{filename:"bundle.js",//2.设置路径path:path.resolve(__dirname,"dist")},plugins: [//3.使用插件new HtmlWebpackPlugin({title:"我是新生成的页面"})]};webpack
或者npm run build
进行打包,index.html就会出现在dist文件夹下面。
如果想要打包两个甚至多个文件怎么办呢?
webpack.config.js中
|
|
同样html-webpack-plugin也可以生成多个页面
|
|
本文结束,感谢阅读。
本文作者:melody0z
本文链接:https://melodyvoid/Webpack/webpack.html
欢迎转载,转载请注明文本链接