博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
webpack笔记三 管理输出
阅读量:5323 次
发布时间:2019-06-14

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

webpack笔记三 管理输出

增加src/print.js

export default function printMe() {    console.log('I get called from print.js!');}

src/index.js中导入它:

import _ from 'lodash';import printMe from './print';function component() {    let element = document.createElement('div');    let btn = document.createElement('button');    element.innerHTML = _.join(['Hello', 'webpack'], ' ');    btn.innerHTML = 'Click here, then watch the console!';    btn.onclick = printMe;    element.appendChild(btn);    return element;}document.body.appendChild(component());

webpack.config.js中增加一个入口:

const path = require('path');module.exports = {    entry: {        app: './src/index.js',        print: './src/print.js'    },    output: {        filename: '[name].bundle.js',        path: path.resolve(__dirname, 'dist')    }};

到这里,还需要手动修改dist/index.html

...    

打包后可以看到效果:

1012606-20190424162359466-526464291.png

1012606-20190424162411026-1808837511.gif

使用 HtmlWebpackPlugin 插件

经过以上实践,我们发现每次修改输出文件名,都得手动修改dist/index.html文件,如果给输出文件名增加了hash值维护起来更是麻烦。懒是进步的动力:

安装 HtmlWebpackPlugin 插件:

npm install --save-dev html-webpack-plugin

webpack.config.js

const path = require('path');const HtmlWebpackPlugin = require('html-webpack-plugin');module.exports = {    entry: {        app: './src/index.js',        print: './src/print.js'    },    plugins: [        new HtmlWebpackPlugin({            title: '管理输出'        })    ],    output: {        filename: '[name].bundle.js',        path: path.resolve(__dirname, 'dist')    }};

HtmlWebpackPlugin会生成一个index.html,替换掉之前的文件。

插件

提供默认模板之外,还提供了一些额外的功能。

CleanWebpackPlugin 清理/dist文件夹

npm install --save-dev clean-webpack-plugin

webpack.config.js

...const CleanWebpackPlugin = require('clean-webpack-plugin');module.exports = {    ...    plugins: [        ...        new CleanWebpackPlugin()    ],    ...};

manifest

webpack通过追踪所有模块到输出bundle之间的映射。

通过可以将manifest数据提取为一个json文件。

The end... Last updated by: Jehorn, April 24, 2019, 4:22 PM

转载于:https://www.cnblogs.com/jehorn/p/10763102.html

你可能感兴趣的文章
IEEE 802.15.4协议学习之MAC层
查看>>
AngularJS学习篇(十三)
查看>>
Tableau 学习资料
查看>>
中断和异常
查看>>
lucene 全文检索工具的介绍
查看>>
C# MD5-16位加密实例,32位加密实例
查看>>
无线点餐系统初步构思
查看>>
AJAX
查看>>
前端之CSS
查看>>
List注意点【修改】
查看>>
sqoop导入导出对mysql再带数据库test能跑通用户自己建立的数据库则不行
查看>>
拓扑排序的原理及其实现
查看>>
对StageWebView捕获位图时空白
查看>>
Provison Profile管理及存放路径
查看>>
shop--8.店铺列表展示--前端开发
查看>>
转:Can not issue data manipulation statements with executeQuery()错误解决
查看>>
详解C#委托,事件与回调函数(转)
查看>>
744. Find Smallest Letter Greater Than Target
查看>>
java实现二维码的生成.
查看>>
Android 发展思路
查看>>