篇仅演示 webpack 的基础搭建,为入门和走通基本流程而写。仅 window 系统。

1. 安装一些东西

安装 nodeJS,下载链接。然后检查安装是否完成。

系统“开始”和“R”键同时按住,桌面右下角出现运行界面,输入 cmd 回车或点击确定。

然后会出现黑色的系统调试器。分别输入以下两行内容,观察已安装程序的版本好。

2. 全局安装 cnpm 和 webpack

使用 cnpm 比 npm 下载更快一些,在该系统调试器中继续输入 npm install -g cnpm。等待此过程完成。

接着输入 npm install -g webpack。等待此过程完成。花花绿绿很大一片(就不贴图了)。

再接着输入 webpack -v 查看版本号,检查是否安装完成。

3. 新建项目文件夹

找个你喜欢的地方新建一个空文件夹,复制其磁盘地址。

然后在系统调试器中输入 cd /d [dirname]。如下:

接着输入 npm init。如果始终中途中断,可输入 npm init -y。一路按回车直到结束。

如果上两种方法都走不通,那就自己手写新建一个 package.json 吧,里面的代码如下。

{
"name": "test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}

再在系统调试器中输入 cnpm install --save-dev webpack。等待此过程结束。

此时的文件管理器中则形成了如此的目录结构。

如果 webpac.config.js 未出现,那又得你手写新建了。代码如下:

'use strict';

var path = require('path');
var ROOT_PATH = path.resolve(__dirname);
var APP_PATH = path.resolve(ROOT_PATH, 'app');
var BUILD_PATH = path.resolve(ROOT_PATH, 'build'); module.exports = {
entry: APP_PATH,
output: {
path: BUILD_PATH,
filename: 'bundle.js'
},
};

其中 app 和 build 分别为 webpack 的输入路径(要压缩等操作的文件)和输出路径(已压缩等着上线的文件),bundle.js 为最终打包生成的文件,需要我们新建一下空文件夹。

之后我们再分别在该项目中添加一堆项目所需的文件,包含了 css/sass/js/json/图片等,在此仅贴出文件目录,如下。

index.html 中仅引用一个最终打包生成文件 bundle.js 就好了,它包含了 app 文件夹内的所有。

4. 安装各种 loader

比如,我想让我的 js 能支持 es6,那么就安装 babel-loader 和 babel-core。在系统调试器中输入:

cnpm install --save-dev babel-loader babel-core

比如,我项让我的 css 能加前缀,支持最新的 css3 属性和方法,那就使用 postcss-loader。在系统调试器中输入:

cnpm install --save-dev postcss-loader autoprefixer precss

但使用 postcss 还需要一个 postcss.config.js 文件,内容如下:

//  postcss.config.js
module.exports = {
plugins: [
require('precss'),
require('autoprefixer')
]
}

再比如,我想使用 sass 来写 css,那就下载 sass-loader 和 node-sass。在系统调试器中输入:

cnpm install --save-dev sass-loader node-sass

安装完这些,我们再来配置webpack.config.js,如下:

'use strict';

var path = require('path');
var ROOT_PATH = path.resolve(__dirname);
var APP_PATH = path.resolve(ROOT_PATH, 'app');
var BUILD_PATH = path.resolve(ROOT_PATH, 'build'); module.exports = {
entry: APP_PATH,
output: {
path: BUILD_PATH,
filename: 'bundle.js'
},
module: {
loaders: [
{
test: /\.json/,
loader: 'json-loader'
},
{
test: /\.jsx?$/,
loader: 'babel-loader',
},
{
test: /\.sass/,
loader: 'style-loader!css-loader!postcss-loader!sass-loader?outputStyle=expanded&indentedSyntax'
},
{
test: /\.scss/,
loader: 'style-loader!css-loader!postcss-loader!sass-loader?outputStyle=expanded',
},
{
test: /\.less/,
loader: 'style-loader!css-loader!postcss-loader!less-loader'
},
{
test: /\.css$/,
loader: 'style-loader!css-loader!postcss-loader',
},
{
test: /\.(png|jpg|gif|svg)$/,
loader: 'url-loader?limit=8192'
},
{
test: /\.(woff|woff2|eot|ttf|otf)$/,
loader: 'url-loader?limit=8192'
},
{
test: /\.(mp4|ogg|svg)$/,
loader: 'file-loader'
},
]
},
};

5. 运行 webpack

在系统调试器输入以下不同语句,将得到不同结果

webpack -v 为查看版本

webpack 直接进行压缩,app 文件夹的东西全部打包成 bundle.js

webpack -w 不用每次修改完都来调试器运行一次打包,每个文件的保存就会打包,在浏览器中刷新就能看到最新结果

webpack -p 生成发布版,不但打包,还压缩代码

以上即为静态文件打包的全过程,可访问本页面以获得源码。

webpack 还远不止这些,它还能设定不同的开发环境,生成到不同文件夹,不用刷新浏览器的热更新等功能,这些将在后续篇章中演示。

最新文章

  1. apt28组织新的flash漏洞利用包dealerschoice分析
  2. php调用COM组件
  3. 【转】Android APK反编译就这么简单 详解(附图)
  4. ajax 中boolean值技巧
  5. 简单总结java 语法
  6. Web安全之点击劫持(ClickJacking)
  7. 【原创】angularjs1.3.0源码解析之service
  8. 20145236 冯佳 《Java程序设计》第3周学习总结
  9. 关于getClass().getClassLoader()
  10. How Tomcat Works(十三)
  11. leetcode第30题--Next Permutation
  12. SimpleDateFormat使用和线程安全问题
  13. Sublimetext3安装Emmet插件步骤
  14. Ajax提交Form表单的一种方法
  15. SpringCloud是什么?
  16. 洛谷p1091合唱队形题解
  17. Java中经常使用缓存Cache机制的实现
  18. 蓝牙4.0 BLE入门
  19. ios开发之--iOS 11适配:iOS11导航栏返回偏移
  20. Ubuntu/Debian下编译PC版的ffmpeg

热门文章

  1. 延迟加载JavaScript
  2. UIWindow和UIScreen
  3. sevlet实现反盗链
  4. Android 满屏显示自定义的View,并进行移动
  5. Servlet------>jsp自定义标签3(不显示余下jsp内容)
  6. 2017 Multi-University Training Contest - Team 4——HDU6069&&Counting Divisors
  7. SQL Server 常用分页SQL(转)
  8. nodejs基础【持续更新中】
  9. leetcode_Basic Calculator
  10. Proud Merchants---hdu3466(有01背包)