You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将自定义令牌处理库排除在Angular缓存之外?

解决Angular应用构建器缓存令牌JSON文件的问题

方法1:在angular.json中配置缓存排除规则

直接在项目的angular.json文件里,针对目标项目的构建配置添加缓存排除路径,让Angular构建器保留全局缓存的同时,忽略你动态更新的令牌相关文件:

{
  "projects": {
    "your-project-name": {
      "architect": {
        "build": {
          "options": {
            "cache": {
              "enabled": true,
              "exclude": [
                "src/assets/tokens.json", // 替换为你的令牌JSON实际路径
                "path/to/your-token-library/**/*" // 若需排除整个令牌库的所有文件
              ]
            }
          }
        },
        "serve": {
          "options": {
            "cache": true // 确保开发服务器也启用缓存
          }
        }
      }
    }
  }
}

方法2:修改令牌加载逻辑破除缓存

如果路径排除不生效,可以在令牌加载函数中加入缓存破坏机制,确保每次都读取最新文件:

纯JavaScript加载函数

export async function loadTokens() {
  // 用时间戳作为参数强制跳过缓存
  const timestamp = new Date().getTime();
  const response = await fetch(`/assets/tokens.json?${timestamp}`);
  return response.json();
}

Angular服务中加载(结合HttpClient)

import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';

@Injectable({ providedIn: 'root' })
export class TokenService {
  constructor(private http: HttpClient) {}

  loadTokens() {
    return this.http.get('/assets/tokens.json', {
      params: { t: new Date().getTime() }
    });
  }
}

方法3:配置令牌库构建输出不被缓存

如果你的令牌处理逻辑是独立Angular库,可在库的ng-package.json中禁用自身缓存:

{
  "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
  "dest": "../../dist/your-token-library",
  "lib": {
    "entryFile": "src/public-api.ts"
  },
  "cacheable": false
}

此配置会让应用构建器每次都重新处理该库,确保令牌逻辑和文件是最新状态。


内容的提问来源于stack exchange,提问作者JSON Derulo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 02:18:15