美文网首页
webpack教程2-asset

webpack教程2-asset

作者: chan2017 | 来源:发表于2017-10-15 15:39 被阅读4次

start的章节中,制作了一个Hello Webpack的小应用。但是webpack的功能不仅仅这些。webpack除了能动态的绑定左右的依赖关系之外,还有不少很酷的亮点,例如:将页面所需要的其他的文件打包。


首先,修改一下
dist/index.html

  <html>
    <head>
-    <title>Getting Started</title>
+    <title>Asset Management</title>
    </head>
    <body>
      <script src="./bundle.js"></script>
    </body>
  </html>
  • css loader

    要把CSS文件打包进JS中,需要先安装两个包css-loader和style-loader

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

    在配置文件中配置loader
    webpack.config.js

      const path = require('path');
    
      module.exports = {
        entry: './src/index.js',
        output: {
          filename: 'bundle.js',
          path: path.resolve(__dirname, 'dist')
        },
    +   module: {
    +     rules: [
    +       {
    +         test: /\.css$/,
    +         use: [
    +           'style-loader',
    +           'css-loader'
    +         ]
    +       }
    +     ]
    +      }
      };
    

    接下来,创建一个.css文件style.css,并在应用中引用。

    webpack-demo
    |- package.json
    |- webpack.config.js
    |- /dist
      |- bundle.js
      |- index.html
    |- /src
    + |- style.css
      |- index.js
    |- /node_modules
    

    src/style.css

    .hello {
        color: red;
    }
    

    src/index.js

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

    cmd运行在start章节中写好的命令npm run build,等待输出成功,浏览器中打开dist/index.html,如果看到hello webpack 变成了红色,说明css文件打包成功。


  • loading images

    想将web使用的图片打包起来,也是可以的,我们只需要引入file-loader来帮助就好了。
    老样子

    npm install --save-dev file-loader
    

    修改一下文件:
    webpack.config.js

    const path = require('path');
    
    module.exports = {
      entry: './src/index.js',
      output: {
        filename: 'bundle.js',
        path: path.resolve(__dirname, 'dist')
      },
      module: {
        rules: [
          {
            test: /\.css$/,
            use: [
              'style-loader',
              'css-loader'
            ]
          },
    +       {
    +         test: /\.(png|svg|jpg|gif)$/,
    +         use: [
    +           'file-loader'
    +         ]
    +       }
        ]
      }
    };
    

    随便选择一个png图片文件放在src目录下并命名为icon.png(其他的类型的图片也可以,注意文件后缀名称。选择范围是你在webpack.config.js中file-loader的test中声明的格式。)

    webpack-demo
    |- package.json
    |- webpack.config.js
    |- /dist
      |- bundle.js
      |- index.html
    |- /src
    + |- icon.png
      |- style.css
      |- index.js
    |- /node_modules
    

    src/index.js

      import _ from 'lodash';
      import './style.css';
    + import Icon from './icon.png';
    
      function component() {
        var element = document.createElement('div');
    
        // Lodash, now imported by this script
        element.innerHTML = _.join(['Hello', 'webpack'], ' ');
        element.classList.add('hello');
    
    +   // Add the image to our existing div.
    +   var myIcon = new Image();
    +   myIcon.src = Icon;
    +
    +   element.appendChild(myIcon);
    
        return element;
      }
    
      document.body.appendChild(component());
    

    src/style.css

    .hello {
        color: red;
    +   background: url('./icon.png');
    }
    

    cmd运行在命令npm run build,浏览器中打开dist/index.html就可以看到你选择的背景图片了。同时在dist中出现一个名字类似5c999da72346a995e7e2718865d019c8.png的图片。这意味着webpack在src文件夹中找到我们的文件并处理它!


webpack的loader还有很多种,这里不再赘述,使用的方式大致是相同的。
更多loader的教程参照

webpack-guides:asset-management

相关文章

  • webpack教程2-asset

    start的章节中,制作了一个Hello Webpack的小应用。但是webpack的功能不仅仅这些。webpac...

  • webpack教程

    webpack入门教程 webpack教程 webpack官方文档

  • 最新webpack教程

    目录 webpack教程1 webpack安装和入门 webpack教程2 webpack管理像图像和字体等静态资...

  • webpack2教程续之DllPlugin

    本文承接webpack2教程、webpack2教程续之自动编译以及webpack2教程续之eslint检测,本文所...

  • 『程序之路』- 目录

    Webpack傻瓜式入门教程系列 Webpack傻瓜式入门教程-01 Webpack傻瓜式入门教程-02 webp...

  • 3.webpack笔记3 使用babel

    1. 全网最贴心webpack系列教程和配套代码 2. webpack4系列教程 3. webpack - bab...

  • webpack4教程(初识篇)

    目录一、webpack是什么二、核心概念三、开发准备四、认识webpack配置文件 系列教程webpack4教程(...

  • react 学习之webpack

    webpack 学习教程

  • Webpack整理

    【翻译】Webpack——令人困惑的地方 webpack2 终极优化 Webpack 2 入门教程 webpack...

  • webpack 几个很棒的教程

    初学webpack,网上找到了几个简明易懂的入门教程十分感谢教程的作者! WebPack 简明学习教程 Webpa...

网友评论

      本文标题:webpack教程2-asset

      本文链接:https://www.haomeiwen.com/subject/ufdcuxtx.html