К основному содержанию
скилл CX Codex

static-import — скилл для Claude Code: статический импорт ES2015

Объясняет синтаксис import в ES2015 и помогает решить, когда модуль стоит грузить сразу, а когда переключиться на динамический импорт.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add PatternsDev/skills --skill static-import -a claude-code
Открыть на GitHub

Что делает static-import

Скилл разбирает статический импорт на примере чат-приложения: компонент Chat подтягивает UserProfile, ChatList и ChatInput, а внутри ChatInput так же подключён EmojiPicker. Все эти модули попадают в начальный бандл, и движок выполняет их сразу, как только доходит до строки с import.

Отсюда и главный риск: в примере сборка Webpack складывает код в один main.bundle.js размером 1.5 MiB. Пока App не загрузит и не разберёт все модули, он ничего не покажет на экране. Если у пользователя слабое устройство или медленная сеть, это заметно. EmojiPicker нужен только после клика по эмодзи — его логичнее грузить динамически.

Скилл срабатывает на файлах **/*.js и **/*.ts, так что в проекте с TypeScript он тоже применится. Рядом лежат родственные скиллы module-pattern и singleton-pattern.

Какие задачи решает

  • понять, какие модули уходят в начальный бандл
  • отличить статический импорт от динамического
  • найти компонент, который грузится зря при старте
  • объяснить, когда движок выполняет импортированный модуль
  • решить, что перевести на динамический импорт

Примеры запросов агенту

  • покажи, какие модули в этом файле попадают в начальный бандл
  • почему EmojiPicker грузится сразу, хотя нужен только по клику
  • перепиши статические импорты ChatInput на динамические

Как установить static-import

1Через Skills CLI (Vercel)

npx skills add PatternsDev/skills --skill static-import -a claude-code

2Вручную: положить файлы

~/.claude/skills/static-import/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/static-import/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о static-import

Как установить static-import в Claude?

Выполните npx skills add PatternsDev/skills --skill static-import -a claude-code. После этого файл скилла лежит в ~/.claude/skills/static-import/SKILL.md.

Что делает static-import?

Учит синтаксису статического импорта ES2015 и объясняет, что все такие модули попадают в начальный бандл. Помогает понять, когда их лучше заменить динамическим импортом.

На каких файлах работает скилл?

Он привязан к путям **/*.js и **/*.ts, поэтому подхватывается и в JavaScript-, и в TypeScript-проектах.

Исходный текст

SKILL.md · MIT
---
name: static-import
description: Teaches static ES2015 import syntax for module dependencies. Use when you need to import code that is required at load time and benefits from static analysis and tree shaking.
paths:
  - "**/*.js"
  - "**/*.ts"
license: MIT
metadata:
  author: patterns.dev
  version: "1.1"
related_skills:
  - "module-pattern"
  - "singleton-pattern"
---

# Static Import

The `import` keyword allows us to import code that has been exported by another module. By default, all modules we're _statically importing_ get added to the initial bundle. A module that is imported by using the default ES2015 import syntax, `import module from 'module'`, is statically imported.

Let's look at an example! A simple chat app contains a `Chat` component, in which we're statically importing and rendering three components: `UserProfile`, a `ChatList`, and a `ChatInput` to type and send messages! Within the `ChatInput` module, we're statically importing an `EmojiPicker` component to be able to show the user the emoji picker when the user toggles the emoji.

## When to Use

- Use this for importing modules that are needed immediately on page load
- This is the default import mechanism — understand it to know when to switch to dynamic imports

## Instructions

- Use static imports for modules critical to the initial render
- Be aware that all statically imported modules are bundled into the initial bundle
- Consider switching to dynamic imports for modules not needed on initial render

## Details

The modules get executed as soon as the engine reaches the line on which we import them.

Since the components were statically imported, Webpack bundled the modules into the initial bundle:

```bash
Asset           Size      Chunks            Chunk Names
main.bundle.js  1.5 MiB    main  [emitted]  main
```

Our chat application's source code gets bundled into one bundle: `main.bundle.js`. A large bundle size can affect the loading time of our application significantly depending on the user's device and network connection. Before the `App` component is able to render its contents to the user's screen, it first has to load and parse all modules.

Luckily, there are many ways to speed up the loading time! We don't always have to import all modules at once: maybe there are some modules that should only get rendered based on user interaction, like the `EmojiPicker` in this case, or rendered further down the page. Instead of importing all component statically, we can _dynamically_ import the modules after the `App` component has rendered its contents and the user is able to interact with our application.

## Source

- [patterns.dev/vanilla/static-import](https://patterns.dev/vanilla/static-import)

© patterns.dev · MIT · PatternsDev/skills

Похожие скиллы

Всё по теме «Фронтенд и UI» →
webflow-code-component:pre-deploy-check webflow Проверяет компоненты Webflow Code Components перед публикацией: размер бандла, зависимости, пропсы, SSR и стили. Пригодится, когда до webflow library share остался один шаг. CX Codex +1 988установок typescript-review metabase Проверяет изменения в TypeScript и JavaScript по правилам Metabase. Пригодится для ревью pull request и diff с фронтенд-кодом. CX Codex +1 2 300установок electron-development Mindrally Скилл задаёт агенту правила разработки десктопных приложений на Electron: разделение процессов, IPC, безопасность окон. CX Codex +1 1 300установок rollup-bundler Mindrally Скилл задаёт агенту правила конфигурации Rollup.js: форматы вывода, внешние зависимости, tree-shaking и плагины для сборки библиотек. CX Codex +1 657установок spatie-javascript Spatie Скилл внедряет стандарты оформления JavaScript и TypeScript от команды Spatie. Он помогает форматировать код, настраивать Prettier и писать чистые компоненты. CX Codex +1 518установок guide toss Помогает настроить библиотеку es-toolkit в проекте, подобрать правильный импорт и команду установки для текущего рантайма. CX Codex +1 516установок

Из того же набора44

preload Обучает агента настраивать предзагрузку критических ресурсов сайта. Помогает подтянуть шрифты, ключевые скрипты и баннеры, которые браузер находит слишком поздно. CX Codex +1 1 500установок compression Скилл объясняет, как сжимать JavaScript через Gzip и Brotli, чтобы скрипты быстрее уходили по сети. Полезен при настройке продакшен-сборки и медленных соединениях. CX Codex +1 1 500установок bundle-splitting Скилл учит агента делить большой JavaScript-бандл на части, чтобы быстрее рисовалась первая страница и приложение становилось интерактивным. CX Codex +1 1 500установок dynamic-import Обучает агента разделять бандл через dynamic import(). Скилл помогает отложить загрузку тяжёлых библиотек и диалогов до действий пользователя. CX Codex +1 1 500установок prpl Скилл обучает ИИ-агента паттерну PRPL для ускорения первой загрузки веб-приложений на слабых устройствах и медленных сетях. CX Codex +1 1 400установок tree-shaking Скилл объясняет tree shaking и подсказывает агенту, как убрать неиспользуемые экспорты из JavaScript-бандла. Пригодится, когда сборка тянет лишнее. CX Codex +1 1 400установок route-based Подсказывает агенту, как разбить SPA по маршрутам и грузить только тот код, который нужен на текущей странице. Пригодится, когда маршрутов много, а стартовая загрузка тормозит. CX Codex +1 1 400установок virtual-lists Обучает агента технике виртуализации списков и таблиц в веб-приложениях. Помогает убрать задержки при скролле и ускорить начальную отрисовку страниц. CX Codex +1 1 500установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой