博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【webpack4】基本配置和入门api
阅读量:6406 次
发布时间:2019-06-23

本文共 2405 字,大约阅读时间需要 8 分钟。

const path = require('path');var htmlWebpackPlugin = require('html-webpack-plugin');module.exports = {    mode: 'production',    entry: {        a: './src/index.js',        b: './src/a.js'//入口文件    },    optimization:{ //拆分模块,公共模块提取        splitChunks:{            chunks:"all"        }    },    output: {        path: path.resolve(__dirname, 'dist'),//通过HtmlWebpackPlugin插件生成的html文件存放在这个目录下面        filename: '[name].js',//主入口的文件名        chunkFilename: '[id].bundle.js'//非主入口的文件名    },    module: {        rules: [            {                test: /\.css$/,                use: [                    'style-loader',                    'css-loader'                ]            },            {                test: /\.(png|svg|jpg|gif)$/,                use: [                    'file-loader?name=img/[name].[hash:6].[ext]'                 ]            }        ]    },    plugins: [ //生产index.html插件        new htmlWebpackPlugin({            filename: 'index.html',            template: './src/index.html',            inject: 'true',            // chunks:['manifest','a']                   })    ]};

Node.js

Path

var path = require("path");path.join([path1][, path2][, ...])//用于连接路径。该方法的主要用途在于,会正确使用当前系统的路径分隔符,Unix系统是"/",Windows系统是"\"。path.resolve(from, to)//用于将相对路径转为绝对路径。

全局对象

global //最根本的作用是作为全局变量的宿主。__filename //表示当前正在执行的脚本的文件名。它将输出文件所在位置的绝对路径,且和命令行参数所指定的文件名不一定相同。 如果在模块中,返回的值是模块文件的路径。__dirname //表示当前执行脚本所在的目录。"build": "rm -rf dist && atool-build && mkdir -p dist/${npm_package_name}/${npm_package_version} && mv dist/*.* dist/${npm_package_name}/${npm_package_version}/"

常用插件

html-webpack-plugin

自动生成html插件

autoprefixer

自动检测兼容性给各个浏览器加个css内核前缀的插件

copy-webpack-plugin

拷贝资源插件

cnpm install --save-dev copy-webpack-pluginnew CopyWebpackPlugin([{    from: __dirname + '/src/public'}]),

webpack.ProvidePlugin [webpack内置插件 ]

全局挂载插件

uglifyjs-webpack-plugin

压缩js

DefinePlugin

new webpack.DefinePlugin(definitions)

DefinePlugin可以在编译时期创建全局变量。

该特性适用于开发版本同线上版本在某些常量上有区别的场景。
比如,可能会通过全局变量定义是否需要打印日志,在开发版中打印日志,
而在先上版本不打印日志。

// webpack.config.jsplugins:[      new webpack.DefinePlugin({        // 全局debug标识        __DEV__: debug,    }),]
new webpack.DefinePlugin({ PRODUCTION: JSON.stringify(true), VERSION: JSON.stringify("5fa3b9"), BROWSER_SUPPORTS_HTML5: true, TWO: "1+1", "typeof window": JSON.stringify("object")})console.log("Running App version " + VERSION);if(!BROWSER_SUPPORTS_HTML5) require("html5shiv");

转载地址:http://fyhea.baihongyu.com/

你可能感兴趣的文章
你不知道的JavaScript运算符
查看>>
小程序开发注意事项
查看>>
ECMAScript7规范中的instanceof操作符
查看>>
Hadoop HDFS原理分析
查看>>
【webpack4】基本配置和入门api
查看>>
Mac使用ssh公钥登录Linux
查看>>
【366天】跃迁之路——程序员高效学习方法论探索系列(实验阶段124-2018.02.06)...
查看>>
POJ3070-Fibonacci(矩阵快速幂)
查看>>
[vue插件]基于vue2.x的电商图片放大镜插件
查看>>
标准的组件结构
查看>>
vue——一个页面实现音乐播放器
查看>>
SVG 扬帆起航
查看>>
NET Core-学习笔记(二)
查看>>
职业生涯上的点点滴滴
查看>>
Linux下添加新硬盘,分区及挂载
查看>>
一起来将vscode变成私人定制笔记本
查看>>
Flutter 云音乐
查看>>
RecyclerView实现多type页面
查看>>
个人的web商城网站
查看>>
debian fcitx
查看>>