webpack打包流程

webpack打包流程webpack 是一个用于现代 JavaScript 应用程序的静态模块打包工具 当 webpack 处理应用程序时 它会在内部从一个或多个入口点构建一个依赖图 dependencygr 然后将你项目中所需的每一个模块组合成一个或多个 bundles 它们均为静态资源 用于展示你的内容 1 创建一个新项目 然后执行 npminit2 全局安装 webpack 以及 webpack cilnpminstal gwebpacknpmi gwebpac

webpack :是一个用于现代 JavaScript 应用程序的 静态模块打包工具。当 webpack 处理应用程序时,它会在内部从一个或多个入口点构建一个 依赖图(dependency graph),然后将你项目中所需的每一个模块组合成一个或多个 bundles,它们均为静态资源,用于展示你的内容。

1、创建一个新项目,然后执行

npm init

2 、全局安装webpack以及webpack-cil

npm install -g webpack npm install -g webpack-cil

3、将webpack安装到项目依赖,这样就可以使用本地版的webpack

npm install webpack -save-dev npm install webpack-cil -save-dev

4、创建最外层的webpack.config.js,改变默认设置

作用:是为了方便不用每次打包的时候都输入目录地址,而是直接webpack即可

const path = require('path');

const webpack = require('webpack');

const HtmlWebpackPlugin = require('html-webpack-plugin');

const CopyPlugin = require('copy-webpack-plugin');

module.exports = {

mode: 'development',

entry: './src/index.js', // 指定打包入口文件

output: {

filename: 'index.js', // 指定打包输出文件名

path: path.resolve(__dirname, './public'), // 指定打包输出路径

},

module: { // 对模块的处理逻辑

rules: [ // 一系列的加载器的处理逻辑

{

test: /\.css$/, // 正则 匹配到文件后缀

use: [

'style-loader',

'css-loader',

], // 用此加载器处理匹配到的文件

exclude: [ // 排除此文件夹下的文件

path.resolve(__dirname, './node_modules')

]

}

],

},

resolve: {

extensions: ['.js', '.json', '.jsx', '.css'] // 自动补全识别后缀

},

plugins: [

new HtmlWebpackPlugin({

template: './src/index.html',

minify: {

removeAttributeQuotes: true,

},

hash: true,

}),

new webpack.EnvironmentPlugin(

{

NODE_ENV: 'development',

TEST: 'true',

}

),

new CopyPlugin({

patterns: [

{from: path.resolve(__dirname, './src/index.css'), to: path.resolve(__dirname, './public')},

],

}),

],

// 配置webpack服务

devServer: {

port: 8000, // 启动服务监听端口

host: 'localhost', // 可以通过localhost访问

open: true, // 自动打开浏览器

hot: true, // 启动热更新

},

};

5 、安装HtmlWebpackPlugin 

该插件将为你生成一个 HTML5 文件, 在 body 中使用 script 标签引入你所有 webpack 生成的 bundle。 只需添加该插件到你的 webpack 配置中

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

6、安装CopyWebpackPlugin

该插件是将需要的文件打包copy到你所需要的地方,我之所以安装此插件,是因为我打完包之后,css并没有打包成功,之后尝试了很多方式还是没有成功,只能手动执行这个将css包copy过去

官方网址:CopyWebpackPlugin | webpack 中文文档

npm install copy-webpack-plugin --save-dev // 安装

// 使用 from 和 to就是 将form地方的文件copy到to地方

const CopyPlugin = require("copy-webpack-plugin"); module.exports = { plugins: [ new CopyPlugin({ patterns: [ { from: "source", to: "dest" }, { from: "other", to: "public" }, ], }), ], }; // webpack.config.js

7、两种打包方法

webpack --mode development // 开发模式 不压缩 webpack --mode production // 生产模式 压缩

8、安装webpack-dev-server 

官方网址:DevServer | webpack 中文文档

npm install --save-dev webpack webpack-dev-server const Webpack = require('webpack'); const WebpackDevServer = require('webpack-dev-server');

9、进行打包之后,启动项目:

"scripts": { "test": "mocha", "start": "webpack-dev-server", "dev": "webpack --mode development" },// 在package.json 里面进行配置 // 然后执行 npm run start // 项目启动&热更新 npm run dev // 再次打包 npm run test // 执行测试

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232978.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • springcloud与dubbo深入对比

    springcloud与dubbo深入对比微服务架构是互联网很热门的话题,是互联网技术发展的必然结果。它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。虽然微服务架构没有公认的技术标准和规范或者草案,但业界已经有一些很有影响力的开源微服务架构框架提供了微服务的关键思路,例如Dubbo和SpringCloud。各大互联网公司也有自研的微服务框架,但其模式都与这二者相差不大。微服务主要的优势降低复…

    2022年5月10日
    41
  • 数据库中的declare什么意思_mysql prepare语句

    数据库中的declare什么意思_mysql prepare语句展开全部sql中declare是声明的意思32313133353236313431303231363533e58685e5aeb931333365653236,就是声明变量的,这个一般是用在函数和存储过程中的。比如说,这个存储过程是,只要你把学号输入进来,就能查询这个学生的班级。那么在这个存储过程里面,学号就是参数。你给什么学号,它就返回给你相应的班级。又或者你也可以做成,只要你输入学号,…

    2022年8月20日
    12
  • 【Mac 教程系列第 10 篇】如何在 Mac 上破解带有密码的 ZIP 压缩文件[通俗易懂]

    【Mac 教程系列第 10 篇】如何在 Mac 上破解带有密码的 ZIP 压缩文件[通俗易懂]如何在Mac上破解带有密码的ZIP压缩文件。下载fcrackzip

    2022年5月30日
    191
  • matlab中画柱状图的函数_科学柱状图怎么画

    matlab中画柱状图的函数_科学柱状图怎么画论文中需要画图进行比较,感觉还是matlab画起来比较方便,先把自己画的图及matlab代码放上。y=[300311;390425;312321;250185;550535;420432;410520;];b=bar(y);gridon;ch=get(b,’children’);set(gca,’XTickLabel’,{‘0′,’1′,’2′,’3’,’…

    2022年10月19日
    4
  • Numpy数字类型 dtype「建议收藏」

    Numpy数字类型 dtype「建议收藏」dtype

    2022年6月12日
    37
  • 整除计算器_整除

    整除计算器_整除原题链接这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然不是唯一的,题目要求你输出最小的解。提示:一个显然的办法是逐渐增加光棍的位数,直到可以整除x为止。但难点在于,s可能是个非常大的数 ——

    2022年8月8日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号