webpack 入门(一)—— 安装和使用

2018-01-19  本文已影响0人  154396b61865

Webpack 有两种组织模块依赖的方式,同步和异步。异步依赖作为分割点,形成一个新的块。在优化了依赖树后,每一个异步区块都作为一个文件被打包。
Webpack 本身只能处理原生的 JavaScript 模块,但是 loader 转换器可以将各种类型的资源转换成 JavaScript 模块。
这样,任何资源都可以成为 Webpack 可以处理的模块。

一、安装

需要先安装 Node.js

mkdir webpack-demo && cd webpack-demo
npm init -y
npm install --save-dev webpack  // 本地安装 webpack 后,你能够从 node_modules/.bin/webpack 访问它的 bin 版本。
npm install webpack-dev-server --save-dev

二、起步

webpack官方文档-起步

1、使用webpack管理前
  webpack-demo
  |- package.json
+ |- index.html
+ |- /src
+   |- index.js

<script>标签之间存在隐式依赖关系。index.js 文件执行之前,还依赖于页面中引入的 lodash

src/index.js
-------------------
function component() {
  var element = document.createElement('div');
  // Lodash(目前通过一个 script 脚本引入)对于执行这一行是必需的
  element.innerHTML = _.join(['Hello', 'webpack'], ' ');
  return element;
}
document.body.appendChild(component());

index.html
-------------------
<html>
  <head>
    <title>Getting Started</title>
    <script src="https://unpkg.com/lodash@4.16.6"></script>
  </head>
  <body>
    <script src="./src/index.js"></script>
  </body>
</html>
2、使用webpack管理后
  webpack-demo
  |- package.json
+ |- /dist
+   |- index.html
  |- /src
    |- index.js

安装lodash: npm install --save lodash

src/index.js

import _ from 'lodash';
function component() {
var element = document.createElement('div');
// Lodash, now imported by this script
element.innerHTML = _.join(['Hello', 'webpack'], ' ');
return element;
}
document.body.appendChild(component());

dist/index.html

  <html>
   <head>
     <title>Getting Started</title>
   </head>
   <body>
    <script src="bundle.js"></script>
   </body>
  </html>

生成bundle.js : ./node_modules/.bin/webpack src/index.js dist/bundle.js

3、使用配置文件
  webpack-demo
  |- package.json
+ |- webpack.config.js
  |- /dist
    |- index.html
  |- /src
    |- index.js

webpack.config.js

var path = require('path');
module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'dist')
  }
};

执行config文件:./node_modules/.bin/webpack --config webpack.config.js

4、使用 NPM 脚本

package.json

{
  ...
  "scripts": {
    "build": "webpack"
  },
  ...
}

构建:npm run build

三、管理资源

webpack官方文档-管理资源

1、加载css

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

webpack.config.js

        {
          test: /\.css$/,
          use: [
            'style-loader',
            'css-loader'
          ]
        },

可以在依赖于此样式的文件中 import './style.css'。现在,当该模块运行时,含有 CSS 字符串的 <style> 标签,将被插入到 html 文件的 <head> 中。

2、加载图片

npm install --save-dev file-loader

webpack.config.js

        {
          test: /\.(png|svg|jpg|gif)$/,
          use: [
            'file-loader'
          ]
        },

curl -o src/icon.png http://www.freeiconspng.com/uploads/team-icon-21.png

3、加载字体

webpack.config.js

      {
        test: /\.(woff|woff2|eot|ttf|otf)$/,
        use: [
          'file-loader'
        ]
      }
4、加载数据

加载数据如 JSON 文件,CSV、TSV 和 XML。类似于 NodeJS,JSON 支持实际上是内置的,也就是说 import Data from './data.json' 默认将正常运行。要导入 CSV、TSV 和 XML,你可以使用 csv-loader 和 xml-loader。

四、管理输出

1、设定 HtmlWebpackPlugin
npm install --save-dev html-webpack-plugin

2、清理 /dist 文件夹
npm install clean-webpack-plugin --save-dev

上一篇下一篇

猜你喜欢

热点阅读