使用webpack5从0搭建。 webpack配置分为三个文件webpack.dev.js webpack.common.js webpack.pro.js webpack.dev.js 开发环境配置 webpack.common.js 是公共配置文件 webpack.pro.js 生产环境配置 package.json 配置三个命令 serve 启动 对应配置webpack.dev.js build打包 对应配置webpack.pro.js 要求配置babel,eslint,dev-server, css-loader,scss-loader,post-loader,style-loader,css压缩,JS压缩,file-loader url-loader,clean-webpack-plugin, js多进程打包,

时间: 2023-08-16 14:29:45 浏览: 52
好的,您的问题是如何使用webpack5从0搭建项目并配置开发环境和生产环境? 首先,需要安装webpack和webpack-cli: ``` npm install webpack webpack-cli --save-dev ``` 然后,我们需要创建三个配置文件:webpack.common.js、webpack.dev.js和webpack.prod.js。 在webpack.common.js中,我们将配置所有环境都需要的共同的部分。例如,我们可以配置entry、output、module和plugins等。示例代码如下: ```javascript const path = require('path'); const { CleanWebpackPlugin } = require('clean-webpack-plugin'); module.exports = { entry: './src/index.js', output: { filename: '[name].bundle.js', path: path.resolve(__dirname, 'dist'), publicPath: '/', }, module: { rules: [ { test: /\.js$/, exclude: /node_modules/, use: ['babel-loader', 'eslint-loader'], }, { test: /\.(sa|sc|c)ss$/, use: ['style-loader', 'css-loader', 'postcss-loader', 'sass-loader'], }, { test: /\.(png|svg|jpg|gif|ico)$/, use: [ { loader: 'url-loader', options: { limit: 8192, name: '[name].[contenthash:8].[ext]', outputPath: 'assets/images', }, }, ], }, { test: /\.(woff|woff2|eot|ttf|otf)$/, use: [ { loader: 'file-loader', options: { name: '[name].[contenthash:8].[ext]', outputPath: 'assets/fonts', }, }, ], }, ], }, plugins: [new CleanWebpackPlugin()], }; ``` 在webpack.dev.js中,我们将配置开发环境所需要的部分。例如,我们可以配置devServer、devtool等。示例代码如下: ```javascript const { merge } = require('webpack-merge'); const commonConfig = require('./webpack.common'); module.exports = merge(commonConfig, { mode: 'development', devtool: 'inline-source-map', devServer: { contentBase: './dist', port: 8080, hot: true, open: true, }, optimization: { minimize: false, }, }); ``` 在webpack.prod.js中,我们将配置生产环境所需要的部分。例如,我们可以配置optimization、devtool等。示例代码如下: ```javascript const { merge } = require('webpack-merge'); const commonConfig = require('./webpack.common'); const TerserPlugin = require('terser-webpack-plugin'); module.exports = merge(commonConfig, { mode: 'production', devtool: 'source-map', optimization: { minimize: true, minimizer: [new TerserPlugin()], }, }); ``` 最后,在package.json中配置三个命令: ```json { "scripts": { "serve": "webpack serve --config webpack.dev.js", "build": "webpack --config webpack.prod.js", "test": "echo \"Error: no test specified\" && exit 1" } } ``` 以上是一个基本的webpack5项目的配置过程,其中包含了babel、eslint、dev-server、css-loader、scss-loader、post-loader、style-loader、css压缩,JS压缩,file-loader、url-loader、clean-webpack-plugin、js多进程打包等常用配置。

相关推荐

最新推荐

recommend-type

webpack教程之webpack.config.js配置文件

本篇文章主要介绍了webpack教程之webpack.config.js配置文件 ,具有一定的参考价值,有兴趣的可以了解一席
recommend-type

webpack配置文件和常用配置项介绍

本篇文章主要介绍了webpack配置文件和常用配置项的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
recommend-type

vue脚手架与项目安装.doc

前端vue开发配置本地开发环境node+webpack+cnpm+vue,配置环境到创建第一个项目并在本地运行,喜欢的小伙伴记得点个赞就行,里面是配置文档,照着一步一步来即可,很方便
recommend-type

vue.js编译时给生成的文件增加版本号

主要介绍了vue.js编译时给生成的文件增加版本号,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
recommend-type

vue.js学习笔记:如何加载本地json文件

但是,如何在一个vue.js 项目中引入本地的json文件呢,下面就将步骤贴出来。(此时项目是由webpack打包而成)。 整个项目是由webpack打包而成。具体项目结构如下: 1:打包好的文件在此,...
recommend-type

RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz

REALTEK 8188FTV 8188eus 8188etv linux驱动程序稳定版本, 支持AP,STA 以及AP+STA 共存模式。 稳定支持linux4.0以上内核。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

系统函数是1+5*z^(-1)+5*z^(-2)+z^(-3) ,给出Matlab中求该系统频率响应的代码

假设系统函数为H(z),则其频率响应为H(w),可以通过以下代码求解: ``` syms z w H = 1 + 5*z^(-1) + 5*z^(-2) + z^(-3); % 定义系统函数 Hw = subs(H, z, exp(1i*w)); % 将z用e^(jw)代替 Hw = simplify(Hw); % 化简 absHw = abs(Hw); % 求幅度响应 angleHw = angle(Hw); % 求相位响应 ``` 其中,`simplify`函数用于化简表达式,`abs`函数用于求绝对值,`angle`函数用于求相位。
recommend-type

c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf

校园超市商品信息管理系统课程设计旨在帮助学生深入理解程序设计的基础知识,同时锻炼他们的实际操作能力。通过设计和实现一个校园超市商品信息管理系统,学生掌握了如何利用计算机科学与技术知识解决实际问题的能力。在课程设计过程中,学生需要对超市商品和销售员的关系进行有效管理,使系统功能更全面、实用,从而提高用户体验和便利性。 学生在课程设计过程中展现了积极的学习态度和纪律,没有缺勤情况,演示过程流畅且作品具有很强的使用价值。设计报告完整详细,展现了对问题的深入思考和解决能力。在答辩环节中,学生能够自信地回答问题,展示出扎实的专业知识和逻辑思维能力。教师对学生的表现予以肯定,认为学生在课程设计中表现出色,值得称赞。 整个课程设计过程包括平时成绩、报告成绩和演示与答辩成绩三个部分,其中平时表现占比20%,报告成绩占比40%,演示与答辩成绩占比40%。通过这三个部分的综合评定,最终为学生总成绩提供参考。总评分以百分制计算,全面评估学生在课程设计中的各项表现,最终为学生提供综合评价和反馈意见。 通过校园超市商品信息管理系统课程设计,学生不仅提升了对程序设计基础知识的理解与应用能力,同时也增强了团队协作和沟通能力。这一过程旨在培养学生综合运用技术解决问题的能力,为其未来的专业发展打下坚实基础。学生在进行校园超市商品信息管理系统课程设计过程中,不仅获得了理论知识的提升,同时也锻炼了实践能力和创新思维,为其未来的职业发展奠定了坚实基础。 校园超市商品信息管理系统课程设计的目的在于促进学生对程序设计基础知识的深入理解与掌握,同时培养学生解决实际问题的能力。通过对系统功能和用户需求的全面考量,学生设计了一个实用、高效的校园超市商品信息管理系统,为用户提供了更便捷、更高效的管理和使用体验。 综上所述,校园超市商品信息管理系统课程设计是一项旨在提升学生综合能力和实践技能的重要教学活动。通过此次设计,学生不仅深化了对程序设计基础知识的理解,还培养了解决实际问题的能力和团队合作精神。这一过程将为学生未来的专业发展提供坚实基础,使其在实际工作中能够胜任更多挑战。