最前端

技术最前端,专注 Web 技术学习与总结。JavaScript, JS, ES6, TypeScript, Vue, PHP, CSS3, Html5, Node, Git, Markdown 等技术文章。

vuePress-theme-reco jimco    2014 - 2025
最前端 最前端
首页
索引
  • 分类
  • 标签
  • 归档
收藏
  • 网站
  • 资源
  • 文章
  • 书单
知识库
  • 前端

    • JS
    • CSS
    • HTML
  • 计算机通识

    • 网络
实验室
  • 手册

    • CSS3 参考手册 (opens new window)
    • HTML 参考手册 (opens new window)
    • NodeJS 参考手册 (opens new window)
    • PHP 参考手册 (opens new window)
  • 工具

    • CSS 格式化 (opens new window)
    • 在线编辑器 (opens new window)
author-avatar

jimco

73 文章
100 标签

首页
索引
  • 分类
  • 标签
  • 归档
收藏
  • 网站
  • 资源
  • 文章
  • 书单
知识库
  • 前端

    • JS
    • CSS
    • HTML
  • 计算机通识

    • 网络
实验室
  • 手册

    • CSS3 参考手册 (opens new window)
    • HTML 参考手册 (opens new window)
    • NodeJS 参考手册 (opens new window)
    • PHP 参考手册 (opens new window)
  • 工具

    • CSS 格式化 (opens new window)
    • 在线编辑器 (opens new window)

工程化 Categories

vuePress-theme-reco jimco    2014 - 2025
  • 前端 51
  • 后端 4
  • 笔记 20
  • 浏览器 3
  • 工程化 7
  • 运维 11
  • 算法 2
利用 Docker & Nginx 实现 Node.js 集群反向代理

译文:Setting Up an NGINX Reverse Proxy with a Node.js Cluster Using Docker

在本文中,我将向大家介绍一个项目,在这个项目中,我设置了一个 Nginx 服务器作为反向代理来处理 Node.js 应用程序集群的请求。该设置使用 Docker 对 Nginx 服务器和 Node.js 应用程序进行容器化,从而实现无缝扩展和管理。在本文结束时,您将明白为什么 Nginx 是现代网络开发的必备工具,以及如何为此类用例进行配置。

jimco 2025/01/16 docker
Nodejs CLI 应用程序最佳实践

# 1 命令行体验

本节介绍有关创建漂亮且高价值用户体验的 Node.js 命令行应用程序最佳实践。

在本节中:

  • 1.1 遵守POSIX参数
  • 1.2 构建富有同理心的CLI
  • 1.3 有状态数据
  • 1.4 提供富有色彩的体验
  • 1.5 丰富的交互
  • 1.6 无处不在的超链接
  • 1.7 零配置
  • 1.8 遵守POSIX信号
jimco 2021/08/02 nodejs
微前端 JS 沙箱实现机制
jimco 2021/07/01 sandboxmicro-app
NPM & YARN 包版本管理

几乎所有前端项目中都有 yarn.lock / package-lock.json 文件(以下以 npm 为例)。打开浏览,你会发现它长得类似 package.json 的依赖,但是冗长得多。很多同学可能都不知道他们是干什么用的,甚至部分同学在项目跑不起来的时候还会暴力把 lock 文件给干掉,最后反而导致更严重的错误。

那么,lock 文件到底是干什么用的?为什么我们会需要 lock 文件?

jimco 2021/05/14 npmyarn
Webpack 打包优化

# 速度优化

  1. 减小文件搜索范围

    • 配置 resolve.modules:

    Webpack 的 resolve.modules 配置模块库(即 node_modules)所在的位置,在 js 里出现 import 'vue' 这样不是相对、也不是绝对路径的写法时,会去 node_modules 目录下找。但是默认的配置,会采用向上递归搜索的方式去寻找,但通常项目目录里只有一个 node_modules,且是在项目根目录,为了减少搜索范围,可以直接写明 node_modules 的全路径;同样,对于别名(alias)的配置,亦当如此:

    function resolve (dir) {
        return path.join(__dirname, '..', dir)
    }
    module.exports = {
        resolve: {
            extensions: ['.js', '.vue', '.json'],
                modules: [
                resolve('src'),
                resolve('node_modules')
            ],
            alias: {
                'vue$': 'vue/dist/vue.common.js',
                'src': resolve('src'),
                'assets': resolve('src/assets'),
                'components': resolve('src/components'),
                // ...
                'store': resolve('src/store')
            }
        },
        ...
    }
    
jimco 2019/12/20 webpack
Yeoman Generator 开发

# Yeoman 是干什么的?

Yeoman 是一个脚手架生成工具,负责生成一个项目的基本解构,能够节省重复劳动,提升开发体验。

# 开发

Yeoman 为我们提供了 Generator 的基类,于是:

const generators = require("yeoman-generator");

module.exports = generators.Base.extend({
    constructor: function () {
        generators.Base.apply(this, arguments)
        // your logic
    }
})
jimco 2019/07/25 yeomangenerator
Browserslist 配置说明

# 背景

Browserslist 定义了一套浏览器兼容配置标准,使得众多前端开发工具(Autoprefixer, Babel, Stylelint...)之间可以共享同一套配置。

# 查询标准

工具将从以下路径查询 browsers 配置:

  1. 当前目录或父级目录的 package.json 文件里的 browserslist 配置(推荐)
  2. 组件自身配置项(比如,Autoprefixer 中的 browsers 配置项)
  3. BROWSERSLIST 环境变量
  4. 当前目录或父级目录的 browserslist 配置文件
  5. 当前目录或父级目录的 .browserslistrc 配置文件
  6. 如果以上配置均不能提供一个有效的配置,Browserslist 将采用默认配置:> 0.5%, last 2 versions, Firefox ESR, not dead
jimco 2017/11/18 browserslist
上一页 1 ... 1 ... 1 下一页