• 主页
  • 归档
  • 分类
  • 照片墙
所有文章 友情链接 关于我

  • 主页
  • 归档
  • 分类
  • 照片墙
  1. 1. 使用方法 :
    1. 1.1. 安装
    2. 1.2. webpack的配置
    3. 1.3. 使用加载器

webpack(1)-初见

2018-06-10 18:08:07
总字数 779
预计阅读时间 3 分钟

现在越来越多的JS代码被用在页面上 , 如何去很好地组织这些代码 , 成为了一个必须要解决的问题
不止有JS需要被模块化管理 , 前端当中很多的图片 css样式 , 都是需要被统一管理 , 方便进行扩展和维护的

所以webpack有如下几个目标 :

  • 将依赖树拆分
  • 保证初始加载的速度
  • 所有静态资源可以被模块化
  • 可以整合第三方的库和模块
  • 可以构造大型项目
    示意图

使用方法 :

安装
  1. 全局安装 npm install webpack -g
  2. 项目初始化
    npm init - 生成一个package.json文件
    npm install webpack --save-dev - 添加webpack依赖
webpack的配置

每个项目下都必须有一个webpack.config.js , 它就相当于webpack的一个配置文件 , 告诉webpack该做什么

这里先写一个最基本的可用配置
其实还有很多的配置项 , 具体可以查看官方文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
module.exports = {
//页面入口文件配置
//相当于执行这个JS文件可以直接或间接找到项目中用到的所有模块
entry: {
index : './src/entry.js'
},
//入口文件输出配置
//最终要打包生成什么名字的文件, 放在哪里
output: {
path: __dirname,//表示当前目录
filename: 'bundle.js'
},
module: {
//加载器配置
//告诉webpack每一种类型文件都需要使用什么加载器来处理
loaders: [
{ test: /\.css$/, loaders: ["style-loader","css-loader"] }
]
}
};

现在可以在项目当中创建src目录 , 并在其中创建entry.js文件和content.js文件

content.js

1
2
//这个文件相当于项目中所用到的一个模块
module.exports = "现在的内容来自于content.js文件";

entry.js

1
2
//这是我们定义的入口文件, 引用content模块
document.write(require("./content.js"));

在项目目录下执行webpack命令
可以看到在项目目录下生成了打包后的bundle.js

编写页面html文件

1
2
3
4
5
6
7
8
<html>
<head>
<meta charset="utf-8"/>
</head>
<body>
<script src="bundle.js"></script>
</body>
</html>

然后可以访问页面 , 看到JS被正确执行了

使用加载器

可以使用加载器去加载一个CSS文件 , 在页面中就不需要对这个样式文件进行引入了
打包后的JS会执行把这个文件中包含的样式加入到页面当中的动作
需要安装css-loader和style-loader这两个模块

1
$ npm install css-loader style-loader --save-dev

然后编写自己的css文件
目录结构

1
2
3
body {
background-color : #ccc;
}

修改entry.js文件 , 引入这个css文件

1
2
require("!style!css!./style/style.css");
document.write(require("./content.js"));

这里因为已经在配置文件中指定了.css文件所使用的加载器 , 所以也可以直接写require("./style/style.css")

css-loader是用于在JS当中加载CSS文件
style-loader是用于将CSS文件的样式加载到页面当中

重新执行webpack命令即可
output

  • webpack
  • 前端杂烩

扫一扫,分享到微信

webpack(2)-进阶
base64文件上传 
© 2024 夏夜梦星辰
鲁ICP备19028444号
Power By Hexo
  • 所有文章
  • 友情链接
  • 关于我
{{searchItem.query}}
标签: 分类:
  • maven
  • 持续集成
  • JMS
  • 线程
  • JavaScript
  • ECMAScript6
  • 单元测试
  • Promise
  • Web Worker
  • 函数
  • prototype
  • 模块化
  • 正则表达式
  • 数据库
  • MongoDB
  • 索引
  • 集群
  • 全文检索
  • flutter
  • dart
  • git
  • 版本控制
  • linux
  • shell
  • docker
  • nginx
  • jenkins
  • opencv
  • vim
  • react
  • react native
  • 前端
  • css
  • HTML5
  • Hexo
  • sass
  • Three.js
  • TypeScript
  • Vue
  • 组件化
  • base64
  • webpack
  • nodejs
  • gulp
  • TensorFlow
  • 机器学习
  • 算法
  • 动态规划
  • 数据结构
  • Java
  • JavaScript
  • MongoDB
  • flutter
  • Git
  • linux
  • react
  • 前端杂烩
  • 男生女生
  • 算法
  • 十年饮冰,难凉热血
  • †少女癌†
  • 猫与向日葵
  • coderfun
  • JENKINS
  • API管理后台
愿你最终能接纳每一面每一种的自己
独自活着便是团圆