初始化package.json
初始化package.json有两种方式,一种是通过npm管理,一种是通过yarn管理。
npm命令:
1 | npm init |
yarn命令:
1 | yarn init |
直接用默认配置:
1 | yarn init -y |
package.json中dependencies,devDependencies,peerDependencies,scripts这几个字段的意思。
dependencies:生产环境,项目运行的依赖(如ract,ract-dom
devDependencies开发环境,项目所需的依赖(webpack插件,打包插件叶索插件,eslint等)
peerDependencies 包不会自动安装,会提示你项目运行,需要主动安装该依赖
scripts命令脚本
引入TypeScript
1 | npm i -D typescript |
或者
1 | yarn add typescript -D |
用tsc命令初始化生产tsconfig.json文件
1 | tsc --init |
tssconfig.js
1 | { |
引入webpack
1 | npm i webpack webpack-cli webpack-dev-server --save-dev |
构建tsx
关于TS转JS,有三种方案
- tsc 缺点,转换为es5后,一些语法特性不能转换
- ts-loader
- babel-loader+@babel/preset-typescript 插件丰富,后序兼容扩展性强
1 | npm i @babel/core @babel/preset-env babel-loader core-js |
[babel中文网](https://link.juejin.cn/?target=https%3A%2F%2Fwww.babeljs.cn%2Fdocs%2Fusage
安装必要的webapck插件和Loader
1 | npm i -D html-webpack-plugin less-loader css-loader style-loader postcss postcss-loader |
配置webpack.config.js
解释:path.resolve()方法用于将相对路径转为绝对路径
它接收多个参数,依次表示所要进入的路径,直到将最后一个参数转为绝对路径,如果根据参数无法得到绝对路径,就以当前所在路径作为基准,除了根目录,该方法的返回值不带尾部斜杠
例如:
1 | // 格式 |
执行效果:
1 | $ cd foo/bar |
node.js中的文件路径大概有____dirname,___filename,precess.cwd,./或者../
1
2
3
4 __dirname: 获得当前执行文件所在目录的完整目录名
__filename: 获得当前执行文件的带有完整绝对路径的文件名
process.cwd():获得当前执行node命令时候的文件夹目录名
./: 文件所在目录
1 | const HtmlWebpackPlugin = require('html-webpack-plugin') |
修改 package.json中scripts
1 | "scripts": { |
直接npm run build就能启动webpack-dev-server