美文网首页
webpack入门

webpack入门

作者: 索伯列夫 | 来源:发表于2018-11-22 23:01 被阅读0次

    关于webpack有啥用,就不说了,直接入门。记录下如何操作webpack。
    首先来一个package.json文件
    npm init -y得到package.json配置文件

    安装

    文档中是:

    npm install webpack webpack-cli --save-dev
    

    我全部用的 sudo cnpm安装下边所有的依赖

    一、第一次尝试

    创建

    创建目录与文件
    dist
      >index.html
    src
      >index.js
    
    设置index.html为:
    <!doctype html>
    <html>
    <head>
        <title>webpack-demo</title>
    </head>
    <body>
        <script src="./main.js"></script>
    </body>
    </html>
    
    设置index.js为:

    (这里的inex.js实际上就是我们,整个项目的入口文件,待会看的比较清楚)

    function component() {
        var element = document.createElement('div');
        element.innerHTML = 'hello webpack'
    
        return element
    }
    document.body.appendChild(component())
    
    运行

    npx webpack运行,发现dist目录下,生成一个main.js文件,我们在dist目录下,启动http-server,是可以正常访问的。

    使用配置文件来解决这个问题:
    在根目录下创建webpack.config.js
    看到入口以及出口,我们添加mode

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

    现在如看main.js,还能看一点~

    二、使用scss

    当然是使用sass-loader

    来一个scss文件

    我们在src目录下创建style.scss

    div {
        width: 600px;
        height: 300px;
        margin: 0 auto;
        background: rosybrown;
        >span {
            display: inline-block;
            padding: 20px;
        }
    }
    

    安装sass-loader

    不过需要提前安装style-loader css-loader

    npm install sass-loader node-sass webpack --save-dev
    

    设置

    // webpack.config.js
    module.exports = {
      ...
      module: {
        rules: [{
          test: /\.scss$/,
          use: [{
              loader: "style-loader" // 将 JS 字符串生成为 style 节点
          }, {
              loader: "css-loader" // 将 CSS 转化成 CommonJS 模块
          }, {
              loader: "sass-loader" // 将 Sass 编译成 CSS
          }]
        }]
      }
    };
    

    运行

    就可以了~style就插入到head中了

    三、使用ES6

    ES6,在一些地方还不支持,我们需要使用babel将其转化为ES5。当然是使用babel-loader

    来一点es6

    我们在index.js中,将var 换为let,添加

    console.log([1,2,3].map(x => x * x))
    

    安装babel-loader

    npm install -D babel-loader @babel/core @babel/preset-env webpack
    

    使用

    module: {
      rules: [
        {
          test: /\.m?js$/,
          exclude: /(node_modules|bower_components)/,
          use: {
            loader: 'babel-loader',
            options: {
              presets: ['@babel/preset-env']
            }
          }
        }
      ]
    }
    

    运行

    运行发现,实际上,已经将es6的语法转化为es5

    四、图片

    使用file-loader

    安装

    npm install --save-dev file-loader
    

    引入

    在index.js引入

    import img from './google.png'
    

    创建img标签

        let elementImg = document.createElement('img')
        elementImg.src = img
        elementDiv.appendChild(elementImg)
    

    配置

    webpack.config.js的rules中添加配置

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

    运行就行~

    相关文章

      网友评论

          本文标题:webpack入门

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