# webpack-init-project

> learning webpack completely

Latest version **1.0.1** (published 2018-07-22) · ISC license · 0 weekly downloads

## Install

```sh
npm install webpack-init-project
pnpm add webpack-init-project
yarn add webpack-init-project
bun add webpack-init-project
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.1 |
| Published | 2018-07-22 |
| First published | 2018-07-22 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 12.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | specialcoder |
| Maintainers | specialcoder |
| Keywords | webpack |

## Links

- npm: https://www.npmjs.com/package/webpack-init-project
- Repository: https://github.com/specialCoder/use-webpack
- Homepage: https://github.com/specialCoder/use-webpack#readme
- Issues: https://github.com/specialCoder/use-webpack/issues
- npm.io page: https://npm.io/package/webpack-init-project

## Dependencies (1)

- [babel-runtime](https://npm.io/package/babel-runtime.md) ^6.26.0

## Alternatives

- [raw-loader](https://npm.io/package/raw-loader.md) — 4.3M weekly downloads
- [plop](https://npm.io/package/plop.md) — 1.4M weekly downloads
- [webpack-deadcode-plugin](https://npm.io/package/webpack-deadcode-plugin.md) — 80.3K weekly downloads
- [@storybook/preact-vite](https://npm.io/package/@storybook/preact-vite.md) — 54.2K weekly downloads
- [vite-plugin-transform](https://npm.io/package/vite-plugin-transform.md) — 2.4K weekly downloads

## Recent versions

- 1.0.1 (latest) — 2018-07-22
- 1.0.0 — 2018-07-22

## README

# webpack-init-project

## Introduction

一个以webpack4为基础的现代工程模版,打造简单易用的webpack环境项目

主要有以下特点：

1. 支持ES6 jsx 语法 (doing)
2. 支持vue 语法 （doing）
3. 可以根据场景需要裁剪或者扩展 (done)

-----

主要包括：

1. base部分
> 配置内容详细见webpack.common.js。更多关于：生成css单独文件、CSS Module、css sourceMap等内容可以翻看具体的loader链接

 + 入口文件：
  - App : index.js  
  - Common : common.js
 + js文件
    - [bable-loader](https://github.com/babel/babel-loader)
    - [.babelrc](https://www.babeljs.cn/docs/usage/babelrc/)
 + css文件：默认采用打包输出，没有生成单独的文件；支持less和scss;开启Css Module(规则：[local]-[hash:base64:5])
    - [style-loader](https://github.com/webpack-contrib/style-loader) : js -> tag style
    - [css-loader](https://github.com/webpack-contrib/css-loader) : css -> css in js
    - [less-loader](https://github.com/webpack-contrib/less-loader) : less -> css
    - [sass-loader](https://github.com/webpack-contrib/sass-loader) : sass -> css
    - [postcss-loader](https://github.com/postcss/postcss) : Autoprefixer
    - [MiniCssExtractPlugin](https://github.com/webpack-contrib/mini-css-extract-plugin) :js -> file style
 + 图片/字体：
  - 默认开启[file-loader](https://github.com/webpack-contrib/file-loader) : file module -> url
 - xml tsv等： 默认未开启处理

2. 开发环境配置部分
> 配置内容详细见webpack.dev.js

- mode:'development'：webpack4.X 指明环境
- [webpack-hot-middleware](https://github.com/webpack-contrib/webpack-hot-middleware)
- [CleanWebpackPlugin]()
- [HtmlWebpackPlugin]()
- [NamedModulesPlugin]()
- [HotModuleReplacementPlugin]()

3. 生产环境配置部分
> 配置内容详细见webpack.prod.js

- mode:'production'
+ optimization
    - [splitChunks](https://webpack.js.org/plugins/split-chunks-plugin/)

4. server 部分

- 使用[express][1]创建http服务
- 使用[webpack-dev-middleware][2]，文件变更时实时编译
- 所有路由重定向到入口文件，使用前端路由导航

## Before use
 - 因为默认使用了CSS Module,[CSS Module 详细参考](https://github.com/camsong/blog/issues/5)
    ```css
       .normal {
         color: green;
        }
    ```

    ```javascript
        // without css module:
        import './Button.css';
        buttonElem.outerHTML = `<button class=${normal}>Submit</button>`
    ```

    ```javascript
        // with css module
        import styles from './Button.css';
        buttonElem.outerHTML = `<button class=${styles.normal}>Submit</button>`
    ```

## Install

    npm install

## build

    npm run build

## start

    npm start

## TODOLIST

开发一个脚手架，让用户自己选择框架安装，是webpack环境配置更加具有针对性

1. react
    - [create-react-app](https://github.com/webpack-contrib/webpack-hot-middleware)
2. vue
    - [vue-cli](https://github.com/vuejs/vue-cli)
3. none: 默认不引入框架的配置环境

[1]:https://expressjs.com/
[2]:https://github.com/webpack/webpack-dev-middleware

## Design Summary

- webpack-hot-middle 要想起作用，还要在每一个要监听的入口文件加入`webpack-hot-middleware/client?path=/__webpack_hmr&timeout=20000&reload=true`

---
_Source: https://npm.io/package/webpack-init-project · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
