webpack精简总结

栏目: JavaScript · 发布时间: 6年前

内容简介:WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其转换和打包为合适的格式供浏览器使用Gulp/Grunt是一种能够优化前端的开发流程的工具, 而WebPack是一种模块化的解决方案, Webpack的优点使得Webpack在很多场景下可以替代Gulp/Grunt类的工具

WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其转换和打包为合适的格式供浏览器使用

与gulp和grunt区别

Gulp/Grunt是一种能够优化前端的开发流程的工具, 而WebPack是一种模块化的解决方案, Webpack的优点使得Webpack在很多场景下可以替代Gulp/Grunt类的工具

不使用配置文件

  1. 全局安装 webpack entryfilename outputfilename
  2. 局部安装 node_modules/.bin/webpack entryfilename outputfilename

配置文件webpack.config.js

执行步骤

  1. mkdir webpack-demo
  2. npm init -y
  3. npm install -D webpack webpack-cli
  4. touch .gitignore webpack.config.js
// .gitignore
node_modules/
dist/
# editor
.vscode
.idea
.project
复制代码
const path = require('path')
module.exports={
    entry:'./main.js',
    output:path.resolve(__dirname,'./dist'),
    module:{
        rules:[
            { test: /\.js$/, exclude: /node_modules/, loader: "babel-loader" },
            {
                test:/\.css$/,
                use:['style-loader','css-loader']
            },
            {
                test:/\.(jpg|png|svg)$/,
                use:['file-loader']
            }
        ]
    },
    plugins:[

    ]
}
复制代码

执行命令

  • npx webpack
  • "dev":"webpack --config webpack.config.js"

配置开发dev和生产pro环境

dev

  1. npm install webpack-merge webpack-dev-server html-webpack-plugin
const common = require('./webpack.config.js');
const merge = require('webpack-merge');
const HtmlWebpackPlugin = require('html-webpack-plugin');
modules.export = merge(common,{
    devtool:'inline-source-map',
    plugins:[
        new HtmlWebpackPlugin({
            filename:'index.html',
            template:'./app/index.html'
        })
    ],
    devServer:{
        hot:true,
        port:3000
    }
})
复制代码

production

  • npm install clean-webpack-plugin copy-webpack-plugin
const common = require('./webpack.config.js');
const merge = require('webpack-merge');
const CleanWebpackPlugin = require('clean-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports=merge(common,{
    plugins:[
        new CleanWebpackPlugin(),
        new HtmlWebpackPlugin({
            template:'./app/index.html',
            inject:true,
            minify:{
                removeComments:true,
                minifyCSS:true,
                collapseWhitespace:true
            }
        }),
        new CopyWebpackPlugin([
            {
                from:'./static',
                to:'static'
            }
        ])
    ]
})
复制代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

软件人才管理的艺术

软件人才管理的艺术

Michael Lopp / 罗小平 / 人民邮电出版社 / 201008 / 35.00元

本书作者具有15年的硅谷人才管理经验,他在博客上发表了大量探讨软件人才的管理之道的文章,深受读者欢迎。本书素材取自他的博客文章,用深入浅出的语言,讲述发人深思的道理,具有很强的现实操作性。 本书分为三大部分:“管理的箭袋”、“过程就是产品”、“你的其他版本”。前两部分分别讲述了人员与产品的管理,第三部分除了讨论管理之外,还讲述了如何有针对性地准备简历和电话面试,来提高自己面试成功的几率。书中......一起来看看 《软件人才管理的艺术》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具