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

Webpack -- 基础篇的更多相关文章

  1. 【webpack 系列】基础篇

    Webpack 基础篇 基本概念 Webpack 是一个现代 JavaScript 应用程序的静态模块打包器.当 webpack 处理应用程序时,它会递归地构建一个依赖关系图,其中包含应用程序需要的每 ...

  2. 基于vue2.x的webpack升级与项目搭建指南--基础篇

    first thing fitrst 博主声明:绝对不当标题党 有人看最好不过的背景: 十月初对公司产品的前端构建做了一些优化,但还遗留了不少问题(可了解我的前一篇博文:一次webpack小规模优化经 ...

  3. nodejs+gulp+webpack基础知识

    nodejs+gulp+webpack基础知识 2019年08月22日 11:49:40 天府云创 阅读数 22   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文 ...

  4. 从0到1用react+antd+redux搭建一个开箱即用的企业级管理后台系列(基础篇)

    背景 ​ 最近因为要做一个新的管理后台项目,新公司大部分是用vue写的,技术栈这块也是想切到react上面来,所以,这次从0到1重新搭建一个react项目架子,需要考虑的东西的很多,包括目录结构.代码 ...

  5. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  6. C#多线程之基础篇3

    在上一篇C#多线程之基础篇2中,我们主要讲述了确定线程的状态.线程优先级.前台线程和后台线程以及向线程传递参数的知识,在这一篇中我们将讲述如何使用C#的lock关键字锁定线程.使用Monitor锁定线 ...

  7. 一步步学习javascript基础篇(0):开篇索引

    索引: 一步步学习javascript基础篇(1):基本概念 一步步学习javascript基础篇(2):作用域和作用域链 一步步学习javascript基础篇(3):Object.Function等 ...

  8. 2000条你应知的WPF小姿势 基础篇<15-21>

    在正文开始之前需要介绍一个人:Sean Sexton. 来自明尼苏达双城的软件工程师,对C#和WPF有着极深的热情.最为出色的是他维护了两个博客:2,000Things You Should Know ...

  9. ABP框架实践基础篇之开发UI层

    返回总目录<一步一步使用ABP框架搭建正式项目系列教程> 说明 其实最开始写的,就是这个ABP框架实践基础篇.在写这篇博客之前,又回头复习了一下ABP框架的理论,如果你还没学习,请查看AB ...

随机推荐

  1. PagerAdapter 普通写法

    1,viewPagre的普通写法 public ImagePagerAdapter(Context context, List<Photo> imgList) { this.mContex ...

  2. Cognos组织架构介绍

    Cognos只是一个工具,说到Cognos相信大部分人都知道BI(商业智能,Business Intelligence). Cognos也是属于SOA架构,面向服务的体系结构,是一个组件模型,它将应用 ...

  3. 递归删除资源树 Ztree

    前言 最近项目里有这么一个需求:现在有一个用Ztree编写的资源树,当删除资源树的某个节点时,则将此节点下面的所有节点全部删除,这里显然就用到了递归:若此节点被删除后无其它的兄弟节点了,我们还需要将其 ...

  4. [2011WorldFinal]Chips Challenge[流量平衡]

    Chips Challenge Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  5. [Domino]从嵌入另一个数据库嵌入的Embedded View无法正常显示,提示unable to lauch

    发现问题 1. 项目中需要在一个数据库中插入另一个数据库的Embedded View,使用起来十分费劲,在选择数据库的下拉菜单中经常会找不到目标数据库: 2. 在做日文版的时候,从workbench导 ...

  6. 160229-02、Sublime Text 3 快捷键总结

    选择类 Ctrl+D 选中光标所占的文本,继续操作则会选中下一个相同的文本. Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑.举个栗子:快速选中并更改所有相同的变量名.函数 ...

  7. CH5302 金字塔【区间DP】

    5302 金字塔 0x50「动态规划」例题 描述 虽然探索金字塔是极其老套的剧情,但是有一队探险家还是到了某金字塔脚下.经过多年的研究,科学家对这座金字塔的内部结构已经有所了解.首先,金字塔由若干房间 ...

  8. Golang学习-第一篇 Golang的简单介绍及Windows环境下安装、部署

    序言 这是本人博客园第一篇文章,写的不到位之处,希望各位看客们谅解. 本人一直从事.NET的开发工作,最近在学习Golang,所以想着之前学习的过程中都没怎么好好的将学习过程记录下来.深感惋惜! 现在 ...

  9. [iOS微博项目 - 4.3] - 设置每条微博边框样式

    github: https://github.com/hellovoidworld/HVWWeibo A.设置每条微博边框样式 1.需求 不需要分割线 每个微博之间留有一定的间隙   2.思路 直接设 ...

  10. golang: multiple http.writeHeader calls

    背景: golang的http服务,读取文件,提供给client下载时候. 出现 multiple http.writeHeader calls 错误. func DownloadFile(w htt ...