美文网首页webpack入门教程—前端开发自动化
webpack入门教程(二)安装和初始化

webpack入门教程(二)安装和初始化

作者: 党云龙 | 来源:发表于2019-10-12 17:47 被阅读0次

    第二章:安装和初始化

    因为webpack是基于nodejs的,所以我们需要先安装一个nodejs。
    已经安装过nodejs的小伙伴可以跳过这一步:

    首先我们需要安装nodejs


    vuecli是基于webpack的,而webpack又是基于nodejs的。所以我们需要先在电脑上安装nodejs。

    你可以到了nodejs的官方下载一个符合你系统的版本——nodejs下载

    安装完毕以后,打开命令提示符,如果你找不到,直接搜索cmd。


    打开cmd窗口

    然后输入


    输入-v查看版本

    看到版本号,说明安装成功!

    接下来全局安装webpack3.8.1!


    直接输入

    npm -g i webpack@3.8.1
    

    安装完毕查看一下版本号。


    查看版本号

    现在所有准备工作都准备就绪了,然后我们开始初始化一个webpack项目:

    初始化webpack项目


    找一个文件夹,打开doc框输入

    npm init
    

    你会看到很多需要你输入的东西,不用管,一路回车。


    生成包配置json

    这一步是生成一个package.json,这个是npm的包管理文件。

    然后我的建议是,你把文件改成我这样:

    {
      "devDependencies": {
        "babel-core": "^6.26.0",
        "babel-loader": "^7.1.2",
        "babel-plugin-transform-runtime": "^6.23.0",
        "babel-preset-env": "^1.6.1",
        "babel-preset-es2015": "^6.24.1",
        "babel-preset-stage-0": "^6.24.1",
        "babel-runtime": "^6.26.0",
        "autoprefixer": "^7.2.3",
        "css-loader": "^0.28.7",
        "style-loader": "^0.21.0",
        "less-loader": "^4.1.0",
        "url-loader": "^0.6.2",
        "file-loader": "^1.1.6",
        "html-webpack-plugin": "^2.30.1",
        "webpack": "^3.8.1",
        "webpack-dev-server": "^2.9.7",
        "webpack-require-http": "^0.4.3",
        "extract-text-webpack-plugin": "^3.0.2"
      },
      "name": "demo",
      "version": "1.0.0",
      "main": "webpack.js",
      "dependencies": {
        "bootstrap": "^3.3.7",
        "html-loader": "^0.5.5",
        "jquery": "^2.1.1",
        "less": "^3.0.4",
        "less-loader": "^4.1.0",
        "style-loader": "^0.21.0",
        "webpack-dev-server": "^2.11.5"
      },
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "watch": "webpack --watch",
        "dev": "webpack-dev-server"
      },
      "author": "",
      "license": "ISC",
      "description": "",
      "babel": {
        "presets": [
          "es2015",
          "react"
        ]
      }
    }
    

    然后输入一遍

    npm install
    

    这样我们需要的支持包就全有了。

    接下来


    新建一个webpack.config.js,这是webpack的配置文件。
    像我这样写:

    // 引入webpack
    const webpack = require('webpack')
    // 引入html生成插件
    const HtmlWebpackPlugin = require('html-webpack-plugin');
    // 引入css压缩插件
    const ExtractTextPlugin = require("extract-text-webpack-plugin");
    module.exports = {
        // 入口文件,指向app.js
        entry: {
            index: './src/js/index.js',
        },
        // 出口文件
        output: {
            // 项目的路径
            path: __dirname + '/dist',
            // 增加随机数防止缓存
            //filename: 'js/[name].[hash:5].js',
            // 输出的文件的路径
            filename: 'js/[name].js',
            // 为使用热启动后产生的日志文件设定输入路径
            hotUpdateChunkFilename: 'hot/hot-update.js',
            hotUpdateMainFilename: 'hot/hot-update.json'
        },
        externals:[
            // 让webpack可以加载外部http资源 例如螳螂
            require('webpack-require-http')
        ],
        // webpack-dev-server 环境
        devServer: {
            contentBase: './dist',
            hot: true
        },
        module: {
            // loader放在rules这个数组里面
            rules: [
                {
                    //把es6转换成es5
                    test: /\.js$/,
                    exclude: /node_modules/,
                    loader: 'babel-loader'
                },
                {
                    test: /\.html$/,
                    use: {
                        loader: 'html-loader'
                    }
                },
                {
                    //识别图片
                    test: /\.(png|jpg|gif)$/,
                    loader: 'url-loader',
                    options: {
                        limit: 4096,
                        name: 'image/[name].[ext]'
                    }
                },
                {    
                    //压缩css
                    test: /\.css$/,
                    use: ExtractTextPlugin.extract({
                        fallback: "style-loader",
                        publicPath: "../",
                        use: [
                            {
                                loader: 'css-loader',
                                options:{
                                    minimize: true //css压缩
                                }
                            }
                        ]
                    })
                },
                {
                    //识别字体文件
                    test: /\.(woff|woff2|ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
                    loader: 'file-loader?name=./fonts/[name].[ext]'
                },
            ]
        },
        // 将插件添加到webpack中
        plugins: [
            // 开启多页应用 生成html文件
            new HtmlWebpackPlugin({
                //模板文件是哪个
                template: './src/index.html',
                //选择注入哪个文件
                chunks: ['index'],
                //是否添加hash随机数防止缓存
                //hash: true,
                //开启html压缩
                minify:{
                    removeComments:true, //移除HTML中的注释
                    collapseWhitespace:true//压缩为一行
                },
                // manual根据chunks的位置手动排序
                chunksSortMode: "manual"
            }),
            // 防止webpack一直弹出警告 加载HMR需要的两个插件
            new webpack.NamedModulesPlugin(),
            new webpack.HotModuleReplacementPlugin(),
            // 解决加载jquery后 jquery不能获得$符控制权的问题
            new webpack.ProvidePlugin({
                $: "jquery",
                jQuery: "jquery"
            }),
            new ExtractTextPlugin("css/styles.css"),
        ]
    }
    

    你现在肯定有点懵,这是干什么呢??上来一顿配置,我都不知道干什么呢。

    不用着急,我们先把开发环境配置好,当我们开始使用的时候,我们会逐个讲解这些配置用到的地方!

    到了这一步,你的项目文件夹下面,应该有node_modules文件夹,一个package.json文件和一个webpack.config.js文件。

    好的,

    然后你再创建两个文件夹,一个叫src,一个叫dist。

    全部完成以后是这样的:

    目录结构

    保持这样,下一个章节我们会详细讲解项目的目录结构!

    相关文章

      网友评论

        本文标题:webpack入门教程(二)安装和初始化

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