跳至主要內容
nest

Nest (NestJS) 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的开发框架

  • 原生支持 TypeScript 的框架
  • 可以基于 Express 也可以选择 fastify

项目创建

安装全局包

npm i -g @nestjs/cli

Emilia Zhen大约 5 分钟nodejs
storybook

Vite

npx sb init --builder storybook-builder-vite

Emilia Zhen大约 2 分钟nodejs
vite

搭建项目

npm

npm create vite@latest

Emilia Zhen大约 1 分钟nodejs
jest
jest jest.test.js --watch

Emilia Zhen小于 1 分钟nodejs
webpack原理

打包 bundle 文件

内部就是实现了一个__webpack_require__函数,递归导入依赖关系

  1. 新建项目,新建 bin 目录
#!/usr/bin/env node
const path = require('path')
const config = require(path.resolve('webpack.config.js'))
const Compiler = require('../lib/compiler')
new Compiler(config).start()

Emilia Zhen小于 1 分钟nodejswebpack
webpack优化

production 模块打包自带优化

  1. tree shaking 打包时移除JS中未引用的代码,依赖于importexport的静态结构特性
  2. scope hoisting 将模块之间的关系进行结果推测,让打包出来的代码文件更小、运行更快
  3. 代码压缩 所有代码使用UglifyJsPlugin插件进行压缩、混淆

CSS 优化

mini-css-extract-plugin是用于将CSS提取为独立的文件的插件,对每个包含CSSjs文件都会创建一个CSS文件,支持按需加载CSSsourceMap。异步加载,不重复编译,只针对CSS 安装 -D


Emilia Zhen大约 7 分钟nodejswebpack
webpack高级配置

html-withimg-loader

只需在html文件中正常引用图片即可,webpack会找到对应的资源进行打包并修改html中的引用路径 安装 添加 loader

rules: [
  {
    test: /\.(jpg|png|gif)$/i,
    use: [
      {
        loader: 'url-loader',
        options: {
          limit: 5 * 1024,
          outputPath: 'images',
          name: '[name]-[hash:6].[ext]',
          esModule: false,
        },
      },
    ],
  },
  {
    test: /\.(htm|html)$/i,
    loader: 'html-withimg-loader',
  },
]

Emilia Zhen大约 1 分钟nodejswebpack
webpack

Webpack

一个基于 Node 的前端构建工具,可以实现对项目的打包,主要解决文件(模块)之间的依赖,文件(模块)和压缩等问题

  • webpack <需要打包的文件路径> <输出文件的路径>
  • webpack推荐在项目中安装-Dnpm5.2以上版本使用npx命令执行
  • webpack4.0之后可以实现0配置打包构建,0配置限制较多,无法自定义很多配置

Emilia Zhen大约 4 分钟nodejswebpack
express

art-template

  1. 安装
npm i art-template -S

Emilia Zhen大约 9 分钟nodejs
npm

设置镜像

yarn config set registry https://mirrors.huaweicloud.com/repository/npm/
yarn config set disturl https://mirrors.huaweicloud.com/nodejs/
yarn config set electron_mirror https://mirrors.huaweicloud.com/electron/

npm config set registry https://registry.npm.taobao.org
npm config set disturl https://npm.taobao.org/dist
npm config set electron_mirror https://npm.taobao.org/mirrors/electron/

Emilia Zhen大约 1 分钟nodejs