webpack管理输出

1.新建src/print.js,分别修改代码如下,然后执行命令 npm run build ,这之后可以在dist文件夹下看到,webpack 生成 print.bundle.js 和 app.bundle.js 文件,和在 index.html 文件中指定的文件名称相对应。在浏览器中打开 index.html,查看点击按钮时会发生什么。

print.js
export default function printMe() {
    console.log(‘这段来自print.js!‘);
  }
index.js
import _ from ‘lodash‘;
import print from ‘./print.js‘;
function component() {
    var element = document.createElement(‘div‘);
    var btn = document.createElement(‘button‘);
    element.innerHTML = _.join([‘Hello‘, ‘webpack‘], ‘ ‘);
    btn.innerHTML = ‘点击!‘;
    btn.onclick = print;
    element.appendChild(btn);
    return element;
  }

  document.body.appendChild(component());

const path = require(‘path‘);
webpack.config.js
module.exports = {
  entry: {//入口文件
    app: ‘./src/index.js‘,
    print: ‘./src/print.js‘
  },
  output: {//输出文件
    filename: ‘[name].bundle.js‘,
    path: path.resolve(__dirname, ‘dist‘)
  }
};

2.HtmlWebpackPlugin,如果更改了一个入口起点的名称,或者添加了一个新的名称,生成的包将被重命名在一个构建中,但是index.html文件仍然会引用旧的名字。 HtmlWebpackPlugin 会用新生成的 index.html 文件,把原来的替换掉,来解决这个问题。

  首先安装 npm install --save-dev html-webpack-plugin ,然后修改webpack.config.js如下,执行npm run build。

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 Management‘
    })
  ],
  output: {//输出文件
    filename: ‘[name].bundle.js‘,
    path: path.resolve(__dirname, ‘dist‘)
  }
};

3.清理 /dist 文件夹  npm install clean-webpack-plugin --save-dev clean-webpack-plugin在每次构建前清理 /dist 文件夹。webpack.config.js加入代码如下,执行npm run build。

const path = require(‘path‘);
  const HtmlWebpackPlugin = require(‘html-webpack-plugin‘);
  const CleanWebpackPlugin = require(‘clean-webpack-plugin‘);

  module.exports = {
    entry: {
      app: ‘./src/index.js‘,
      print: ‘./src/print.js‘
    },
    plugins: [
      new CleanWebpackPlugin([‘dist‘]),
      new HtmlWebpackPlugin({
        title: ‘Output Management‘
      })
    ],
    output: {
      filename: ‘[name].bundle.js‘,
      path: path.resolve(__dirname, ‘dist‘)
    }
  };

4.通过 manifest,webpack 能够对「你的模块映射到输出 bundle 的过程」保持追踪,使用 WebpackManifestPlugin,可以直接将数据提取到一个 json 文件,以供使用。

5.source map的使用,当 webpack 打包源代码时,可能会很难追踪到错误和警告在源代码中的原始位置。JavaScript 提供了 source map 功能,将编译后的代码映射回原始源代码。这里使用 inline-source-map 选项,在webpack.config.js中配置。

const path = require(‘path‘);
const HtmlWebpackPlugin = require(‘html-webpack-plugin‘);
const CleanWebpackPlugin = require(‘clean-webpack-plugin‘);
module.exports = {
  entry: {//入口文件
    app: ‘./src/index.js‘,
    print: ‘./src/print.js‘
  },
  devtool: ‘inline-source-map‘,
  plugins:[
    new CleanWebpackPlugin([‘dist‘]),
    new HtmlWebpackPlugin({
       title: ‘Output Management‘
    })
  ],
  output: {//输出文件
    filename: ‘[name].bundle.js‘,
    path: path.resolve(__dirname, ‘dist‘)
  }
};

6.可以指示 webpack "watch" 依赖图中的所有文件以进行更改。如果其中一个文件被更新,代码将被重新编译,不必手动运行整个构建。在pockage.json的scripts中添加 "watch": "webpack --watch" 。

在命令行中运行 npm run watch,就会看到 webpack 编译代码,然而却不会退出命令行。这是因为 script 脚本还在观察文件。但是修改过之后,需要手动刷新浏览器。

7.webpack-dev-server 提供了一个简单的 web 服务器,并且能够实时重新加载(live reloading)。

首先安装 npm install --save-dev webpack-dev-server ,修改webpack.config.js如下。

在pockage.json的scripts中添加  "start": "webpack-dev-server --open", 然后 npm start 。此时端口号为8080。

const path = require(‘path‘);
const HtmlWebpackPlugin = require(‘html-webpack-plugin‘);
const CleanWebpackPlugin = require(‘clean-webpack-plugin‘);
module.exports = {
  entry: {//入口文件
    app: ‘./src/index.js‘,
    print: ‘./src/print.js‘
  },
  devtool: ‘inline-source-map‘,
  devServer: {
    contentBase: ‘./dist‘
  },
  plugins:[
    new CleanWebpackPlugin([‘dist‘]),
    new HtmlWebpackPlugin({
       title: ‘Output Management‘
    })
  ],
  output: {//输出文件
    filename: ‘[name].bundle.js‘,
    path: path.resolve(__dirname, ‘dist‘)
  }
};

8.webpack-dev-middleware使用。webpack-dev-middleware 是一个容器(wrapper),它可以把 webpack 处理后的文件传递给一个服务器(server)。 webpack-dev-server 在内部使用了它,同时,它也可以作为一个单独的包来使用,以便进行更多自定义设置来实现更多的需求。可以在创建的serverjs中修改端口号,具体这里不写了,以后想写再补上,先百度 。

原文地址:https://www.cnblogs.com/vipp/p/9881846.html

时间: 2024-08-30 18:08:54

webpack管理输出的相关文章

重温webpack(三)---管理输出

1.输出多个 bundle dist/index.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Output Management</title> </head> <body> <script type="text/javascript" src="app.bundle.j

kettle使用log4j管理输出日志

在使用kettle进行数据分析和清洗时日志非常多而且杂乱,使用原有的日志有时找不到异常的位置,有时日志不够详细,说简单一点就是日志不是我们想要的.因而对kettle日志进行相应的管理就想得尤为重要了.大家都知道java最常用的日志管理包log4j可以很好地实现java日志的管理,然而kettle是使用java开发的,因而log4j是个不二的选择.好了说了这么多,下面看看kettle怎么使用log4j进行日志的管理吧. 1.kettle加载和使用log4j 在转换的JavaScript中添加log

前端随心记---------webpack管理工具

webpack: 官网:https://www.webpackjs.com/ 由来: 1.开发的时候,我们写的代码是有注释,有空格(文件比较大)在开发环境中注释有意义的,但是在生产环境中,注释是没有意义的.代码应该是尽可能压缩的足够小(网络请求)如果我们没有借助一些其他工具的时候,我们需要手工的把 xxx.js 转换 xxx.mini.js 文件.(文件美化) 2.我们的js在发展的过程中,出现很多的新特性,例如 es6 箭头函数.class 语法糖,Promise等.这些新的特性在不做处理的时

细说前端自动化打包工具--webpack

背景 记得2004年的时候,互联网开发就是做网页,那时也没有前端和后端的区分,有时一个网站就是一些纯静态的html,通过链接组织在一起.做网页就和用world编辑一个文档一样,只不过那个工具叫Dreamweaver.一个html页面,夹杂着css,javascript是再常见不过的事了. 随着前端的不断发展,特别是单页应用的兴起,这种所见即所得的IDE工具,就渐渐地退出了前端的主流.一个应用,通常只有一个静态页面(index.html),甚至这个页面的body只有一个或少数几个div组成.这时有

Webpack从入门到上线

webpack是目前一个很热门的前端打包工具,官网说得很清楚,webpack的出现就是要把requirejs干掉.同时它还提供了十分便利的本地开发的环境.网上并不容易找到一个讲解得比较详细完整的教程,本文结合实践经验,总结一套可用的开发和上线的配置和流程. 首先,Require JS有什么问题 RequireJs存在的问题 博主先是使用了RequireJs,后来又转了webpack,综合比较,requirejs确实存在一些缺点: 1.写法比较笨拙 需要把所有的依赖模块写在require函数里面,

gulp &amp; webpack整合

为什么需要前端工程化? 前端工程化的意义在于让前端这个行业由野蛮时代进化为正规军时代,近年来很多相关的工具和概念诞生.好奇心日报在进行前端工程化的过程中,主要的挑战在于解决如下问题:? 如何管理多个项目的前端代码?? 如何同步修改复用代码?? 如何让开发体验更爽? 项目实在太多 之前写过一篇博文 如何管理被多个项目引用的通用项目?,文中提到过好奇心日报的项目偏多(PC/Mobile/App/Pad),要为这么多项目开发前端组件并维护是一个繁琐的工作,并且会有很多冗余的工作. 更好的管理前端代码

详解前端模块化工具-Webpack

React自发布以来吸引了越来越多的开发者,React开发和模块管理的主流工具webpack也被大家所熟知.那么webpack有哪些优势,可以成为最主流的React开发工具呢? Webpack是什么 CommonJS和AMD是用于JavaScript模块管理的两大规范,前者定义的是模块的同步加载,主要用于NodeJS:而后者则是异步加载,通过requirejs等工具适用于前端.随着npm成为主流的JavaScript组件发布平台,越来越多的前端项目也依赖于npm上的项目,或者自身就会发布到npm

webpack+react+antd 单页面应用实例

webpack+react+antd 单页面应用实例 React框架已经火了好长一段时间了,再不学就out了! 对React还没有了解的同学可以看看我之前的一篇文章,可以快速简单的认识一下React.React入门最好的实例-TodoList 自己从开始接触react一窍不通,到慢慢的似懂非懂,通过各种途径学习也有一阵了.学习过程中还会接触到很多新的东西,比如ES6.webpack,过程艰辛谁人懂,见坑填坑慢慢来.今天把学习过程过滤了一下,只说项目实际需要用的东西,总结了一套能看到的东西,分享给

webpack入门指南-step03

一.webpack 的使用 webpack简单点来说就就是一个配置文件,所有的魔力都是在这一个文件中发生的. 这个配置文件主要分为三大块 entry 入口文件 让webpack用哪个文件作为项目的入口 output 出口 让webpack把处理完成的文件放在哪里 module 模块 要用什么不同的模块来处理各种类型的文件 二.webpack 常用命令 webpack的使用和browserify有些类似,下面列举几个常用命令: webpack          最基本的启动webpack命令 we