zoukankan      html  css  js  c++  java
  • webpack 的环境搭建

    1. npm init -y
    2. 创建src
      2.1 创建index.html
      2.2 main .js

    3. 创建配置 webpack.config.js

    var path = require('path')
    
    module.exports = {
        entry: path.join(__dirname, './src/main.js'),  //入口
        output: {
            path: path.join(__dirname, './dist'),  //输出路径
            filename: 'bundle.js'  //指定文件名称
        }
    }

    4. npm install webpack webpack-cli --save-dev  (webpack 4 之后 webpack 和 webpack-cli 是分离的,都需要安装)
    5. npm i webpack-dev-server -D
    6. 编译打包 ./node_modules/.bin/webpack ,打包后会生成 bundle.js

     

    7.  安装好 webpack-dev-server 后配置 package.json 添加 dev: 

    "dev": "webpack-dev-server --open --port 3000 --contentBase src --hot"
    {
      "name": "study",
      "version": "1.0.0",
      "description": "",
      "main": "index.js",
      "scripts": {
        "test": "echo "Error: no test specified" && exit 1",
        "dev": "webpack-dev-server --open --port 3000 --contentBase src --hot"
      },
      "keywords": [],
      "author": "",
      "license": "ISC",
      "devDependencies": {
        "webpack": "^4.41.5",
        "webpack-cli": "^3.3.10",
        "webpack-dev-server": "^3.10.1"
      }
    }

    8. 因为使用 dev 运行,热更新后的 bundle.js 文件处于 http://localhost:3000/bundle.js (内存中运行),script 文件需要改路径

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    
    
        <!-- <script src="./dist/bundle.js"></script> -->
        <!-- 热更新后的bundle.js 文件处于 http://localhost:3000/bundle.js -->
        <script src="/bundle.js"></script>
    </head>
    
    <body>
        <div>
            <ul>
                
                <li>1</li>
                <li>2</li>
                <li>3</li>
                <li>4</li>
                <li>5</li>
                <li>6</li>
                <li>7</li>
                <li>8</li>
                <li>9</li>
                <li>10</li>
    
            </ul>
    
        </div>
    </body>
    
    </html>

    9.这时候保存代码后发现需要手动刷新页面,可以安装 html-webpack-plugin 插件。(安装了html-webpack-plugin 后内存中的html会自动调用script)

    10.安装好后配置webpack.config.js 页面

    var path = require('path')
    var htmlwebpackplugin = require('html-webpack-plugin');
    
    module.exports = {
        entry: path.join(__dirname, './src/main.js'),  //入口
        output: {
            path: path.join(__dirname, './dist'),  //输出路径
            filename: 'bundle.js'  //指定文件名称
        },
        plugins: [
            new htmlwebpackplugin({
                template: path.join(__dirname, './src/index.html'), //模板文件路径
                filename: 'index.html' //设置内存页面名称
            })
        ]
    }

    在终端输入 npm run dev  运行,现在在编译器保存浏览器也会自动刷新了

     11.配置css

      11.1 添加index.css

       

      11.2 安装  npm i style-loader css-loader -D

     

      

      11.3 在main.js中引用 index.css

    console.log('ok11')
    
    import './css/index.css'

       

      11.4 配置webpack.config.js  (添加 module 节点)

    var path = require('path')
    var htmlwebpackplugin = require('html-webpack-plugin');
    
    module.exports = {
        entry: path.join(__dirname, './src/main.js'),  //入口
        output: {
            path: path.join(__dirname, './dist'),  //输出路径
            filename: 'bundle.js'  //指定文件名称
        },
        plugins: [
            new htmlwebpackplugin({
                template: path.join(__dirname, './src/index.html'), //模板文件路径
                filename: 'index.html' //设置内存页面名称
            })
        ], 
        module: {
            rules: [
                { test: /.css$/, use: ['style-loader', 'css-loader'] }
            ]
        }
    }

      11.5  npm run dev 运行

     12 配置 less 

      12.1 添加 index.less

      12.2 安装 less-loader 和 less 

      

      12.3 配置webpack.config.js (添加less)

    var path = require('path')
    var htmlwebpackplugin = require('html-webpack-plugin');
    
    module.exports = {
        entry: path.join(__dirname, './src/main.js'),  //入口
        output: {
            path: path.join(__dirname, './dist'),  //输出路径
            filename: 'bundle.js'  //指定文件名称
        },
        plugins: [
            new htmlwebpackplugin({
                template: path.join(__dirname, './src/index.html'), //模板文件路径
                filename: 'index.html' //设置内存页面名称
            })
        ],
        module: {
            rules: [
                { test: /.css$/, use: ['style-loader', 'css-loader'] },
                //处理 less 文件
                { test: /.less$/, use: ['style-loader', 'css-loader', 'less-loader'] }
            ]
        }
    }

      12.4   npm run dev 运行

    13  scss 同上

       npm i sass-loader sass -D

      

    var path = require('path')
    var htmlwebpackplugin = require('html-webpack-plugin');
    
    module.exports = {
        entry: path.join(__dirname, './src/main.js'),  //入口
        output: {
            path: path.join(__dirname, './dist'),  //输出路径
            filename: 'bundle.js'  //指定文件名称
        },
        plugins: [
            new htmlwebpackplugin({
                template: path.join(__dirname, './src/index.html'), //模板文件路径
                filename: 'index.html' //设置内存页面名称
            })
        ],
        module: {
            rules: [
                { test: /.css$/, use: ['style-loader', 'css-loader'] },
                //处理 less 文件
                { test: /.less$/, use: ['style-loader', 'css-loader', 'less-loader'] },
                //处理 scss 文件
                { test: /.scss$/, use: ['style-loader', 'css-loader', 'sass-loader'] }
            ]
        }
    }

       npm run dev 运行

      

     14. css 里面的图片处理

      npm i url-loader file-loader -D   --图片处理 

      webpack.config.js
    
    
    module: {
            rules: [
                { test: /.css$/, use: ['style-loader', 'css-loader'] },
                //处理 less 文件
                { test: /.less$/, use: ['style-loader', 'css-loader', 'less-loader'] },
                //处理 sass 文件
                { test: /.scss$/, use: ['style-loader', 'css-loader', 'sass-loader'] },
                //处理css 里面的图片
                { test: /.(jpg|png|gif|bmp|jpeg)$/, use: ['url-loader?limit&name[hash:8]-[name].[ext]'] }
            ]
        },
    
    
     
  • 相关阅读:
    Windows Azure 社区新闻综述(#64 版)
    Eclipse下配置C/C++开发环境
    有你同行,我不会寂寞物联网操作系统Hello China后续开发计划及开发者征集
    ObjectiveC新手推荐《ObjectiveC开发范例代码大全》
    虚拟网络添加跨界连接的新功能
    WebMatrix 3发布了!
    Windows Live最值得期待的功能 FolderShare
    ASP.NET 2.0 两种模式website和web application到底那个好?
    Sonata 1.2.1 发布
    DB2 9 使用拓荒(733 测验)认证指南,第 9 部分: 用户定义的例程(4)
  • 原文地址:https://www.cnblogs.com/lbx6935/p/12121160.html
Copyright © 2011-2022 走看看