# d7c-webpack
**Repository Path**: d7c/d7c-webpack
## Basic Information
- **Project Name**: d7c-webpack
- **Description**: d7c-webpack 是一个使用 npm 和 bower 进行包管理,webpack 进行自动化构建的快速 WEB 骨架项目。
- **Primary Language**: NodeJS
- **License**: AGPL-3.0
- **Default Branch**: master
- **Homepage**: http://www.d7c.top/
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-06-24
- **Last Updated**: 2022-11-29
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# d7c-webpack
## 介绍
d7c-webpack 是一个使用 npm 进行包管理,webpack 进行自动化构建的快速 WEB 骨架项目。
## 软件架构
### 应用程序依赖包管理工具 npm
npm 官网地址:[https://www.npmjs.com](https://www.npmjs.com/),npm 全称 Node Package Manager 是 node 应用程序依赖包的管理工具,包括安装、卸载、更新模块操作,使用 nodejs 16.15.1 开发时一般使用 npm 来管理 nodejs 中的包。
### 自动化构建工具 webpack
webpack 官网地址:[https://www.webpackjs.com/](https://www.webpackjs.com/),中文官网地址:[https://webpack.docschina.org/](https://webpack.docschina.org/),webpack 是一个现代 JavaScript 应用程序的模块打包器。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle。
## 安装教程
### 1. 在码云上创建 d7c-webpack 仓库并克隆到本地
### 2. 初始化(给项目添加依赖配置文件)
```
在项目根目录下打开命令行窗口,输入 npm init <--yes>
```
### 3. 新建 .editorconfig,规范文本编码格式
### 4. 安装其他开发依赖模块
```
1、webpack 客户端
npm install --save-dev webpack webpack-cli
2、能够实时重新加载的 web 服务器
npm install --save-dev webpack-dev-server
3、style-loader 会在 html 中创建 style 标签,css-loader 会将 CSS 文件整合到 JS 文件中
npm install --save-dev style-loader css-loader
4、用 JavaScript 工具和插件转换 CSS 代码的工具,通过配置加载指定 CSS 兼容性样式
npm install --save-dev postcss postcss-preset-env postcss-loader
5、提取 JS 中 CSS 为一个单独的文件
npm install --save-dev mini-css-extract-plugin
6、CSS 压缩、缓存
npm install --save-dev css-minimizer-webpack-plugin
7、less 加载
npm install --save-dev less less-loader
8、sass 加载
npm install --save-dev sass sass-loader
9、JS 语法检查
npm install --save-dev eslint eslint-webpack-plugin eslint-config-airbnb-base eslint-plugin-import eslint-plugin-html
10、JS 兼容性处理 https://www.babeljs.cn/docs/usage
npm install --save-dev @babel/core @babel/cli @babel/preset-env babel-loader @babel/plugin-transform-runtime babel-plugin-transform-remove-console
11、压缩 JavaScript
npm install --save-dev terser-webpack-plugin
12、加载 html 模块插件
npm install --save-dev html-webpack-plugin
13、处理 html 文件中的资源路径
npm install --save-dev html-loader html-withimg-loader
14、优化图片
npm install --save-dev image-minimizer-webpack-plugin imagemin
15、无损优化 imagemin 插件
npm install --save-dev imagemin-gifsicle imagemin-jpegtran imagemin-optipng imagemin-svgo
16、csv、xml 文件加载
npm install --save-dev csv-loader xml-loader
17、让指定 loader 在线程池中处理
npm install --save-dev thread-loader
18、抽取 webpack 公共配置
npm install --save-dev webpack-merge
19、运行跨平台设置和使用环境变量的脚本
npm install --save-dev cross-env
20、构建分析
npm install --save-dev speed-measure-webpack-plugin webpack-bundle-analyzer
```
### 5. 安装项目依赖模块
```
1、JavaScript 标准库的补丁,与 babel 共同解决 JS 浏览器兼容性问题
npm install --save core-js
2、bootstrap
npm install --save bootstrap@3.4.1
npm install --save jquery
npm install --save html5shiv
npm install --save respond.js
```
### 6. 创建 .eslintrc.js、.eslintignore 和 babel.config.js 文件,编写 eslint 规则和 babel 规则
### 7. 创建并编写 webpack 配置文件
```
/build/webpack.*.js
```
### 8. 运行测试
```
cd d7c-webpack
npm run dev
```
## 使用说明
### 1. 克隆并安装项目,在项目根目录下执行
```
npm install
```
### 2. 其他命令
```
Compiles and hot-reloads for debugger:npm run debug
Compiles and hot-reloads for development:npm run serve / npm run start / npm run dev
Compiles and minifies for production:npm run build
Lints and fixes files:npm run lint
```
## 运行展示
## 经验
在安装无损优化 imagemin 插件时由于 raw.githubusercontent.com 无法 ping 通导致安装失败:
如果使用 cnpm 安装,那么后面安装其他插件都需要使用 cnpm 命令,如果使用 npm 安装会报错,而且 cnpm 不会维护 package-lock.json 信息。
我们可以在 host 文件中配置如下映射(这些映射可能会变):
```
185.199.108.133 raw.githubusercontent.com
185.199.109.133 raw.githubusercontent.com
185.199.110.133 raw.githubusercontent.com
185.199.111.133 raw.githubusercontent.com
151.101.76.133 raw.githubusercontent.com
151.101.76.133 gist.githubusercontent.com
151.101.76.133 cloud.githubusercontent.com
151.101.76.133 camo.githubusercontent.com
151.101.76.133 avatars0.githubusercontent.com
151.101.76.133 avatars1.githubusercontent.com
151.101.76.133 avatars2.githubusercontent.com
151.101.76.133 avatars3.githubusercontent.com
151.101.76.133 avatars4.githubusercontent.com
151.101.76.133 avatars5.githubusercontent.com
151.101.76.133 avatars6.githubusercontent.com
151.101.76.133 avatars7.githubusercontent.com
151.101.76.133 avatars8.githubusercontent.comsssss
```
再 ping 就可以 ping 通了:
当然,如果你不介意没有 package-lock.json 文件,你完全可以使用 cnpm。
## 捐助打赏
如果您觉得我们的开源软件对你有所帮助,请扫下方二维码打赏我们一杯咖啡。



## 参与贡献
1. Fork 本仓库
2. 新建 d7c-webpack_xxx 分支
3. 提交代码
4. 新建 Pull Request
## 特技
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目
4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)