先搞清楚node、npm和webpack之间的关系.
Node.js :是一个基于Chrome JavaScript 运行时建立的一个平台.
npm:包管理工具,是于Node社区中产生的,是node.js的官方包管理工具,下载安装好node的时候,npm就自动安装好了.
webpack:是一个模块化打包工具,是npm生态中的一个模块,可以通过全局或局部安装webpack来使用webpack对项目文件进行打包;运行必须依赖于node的环境,没有node是不能打包的,但是webpack打包后的项目本身只是前端静态资源和后台没有关系,也就是说不依赖与node,只要有后台能力的都可以部署项目。
安装好node后,使用npm工具对webpack安装
全局安装:
当前项目局部安装(开发时依赖 ):
下面用简单代码演示
normmal.css
body {
background-color:red;
}
mainUtils.js
function add(num1,num2){
return num1+num2
}
function mul(num1,num2){
return num1*num2
}
//commonjs规范导出
module.exports = {
add,
mul
}
info.js
//es6规范导出
export const name ='zzc'
export const age =22
export const height =175
main.js
//使用commonjs的模块化的规范导入
const {add,mul} =require('./js/mathUtils.js')
console.log(add(10, 20));
console.log(mul(10, 20));
//使用es6的模块化的规范导入
import {name,age,height} from "./js/info";
console.log(name);
console.log(age);
console.log(height);
//依赖css文件
require('./css/normal.css')
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>webpack使用</title>
</head>
<body>
<script src="./dist/bundle.js"></script>
</body>
</html>
当前项目目录:
dist文件夹:用于存放之后打包的文件
src文件夹:存放自己写的源文件,main.js是项目入口文件
index.html:浏览器打开展示的首页html
package.json:通过npm init生成,npm包管理的文件,该文件主要是配置build:webpack指令
package-lock.json:通过npm install生成
node_modules:通过局部安装webpack生成
语句在上面
webpack.config.js:
该文件属于重要配置文件,用来引导打包入口到出口
//将main.js打包到bundle.js
const path = require('path') //用到node的npm init --> npm install
module.exports={
entry:'./src/main.js', //入口
output:{ //出口
path:path.resolve(__dirname,'dist'), //动态获取出口目标绝对路径
filename:'bundle.js' //出口目标文件名
},
module: {
rules: [
{
test: /\.css$/,
//css-loader只负责将css文件进行加载
//style-loader负责将样式添加到DOM中
//使用多个loader时,执行是从右到左
use: [ 'style-loader', 'css-loader' ]
}
]
}
}
当依赖于样式css时候,要用:
指令npm install --save-dev css-loader安装css-loader
指令npm install style-loader --save-dev安装style-loader
我当时安装后进行打包时出现了错误,说什么什么不是一个方法
当时上网看了某个博主的解释,发现是版本问题,下面版本亲试可用
执行build指令打包
执行index.html后效果图: