СегментFault, авторская колонка: «Постоялый двор на окраине»
Автор: Джеймс Фан (James Fan), также известный как «Окраина».
Каталог/файл | Описание |
---|---|
src/ |
|
src/index.html |
Главная страница (также единственная HTML-страница) |
src/less/ |
Исходный код таблицы стилей |
src/scripts/ |
Исходный код скриптов TypeScript |
docs/ |
Документы |
dist/ |
Результаты сборки (каталог не существует до сборки) |
dist/index.html |
Страница публикации, напрямую скопированная из src/index.html
|
dist/css/ |
Таблица стилей, созданная из src/less/
|
dist/js/ |
Скрипт, созданный из src/scripts/ , требует поддержки браузера type="module"
|
dist/libs/ |
Сторонние библиотеки, на которые есть ссылки на странице, в настоящее время только jQuery |
Среда разработки (а также среда npm scripts) представляет собой Windows 10, более низкие версии Windows или Linux требуют внесения изменений в скрипты в файле package.json
.
Хотя это и фронтенд, всё ещё используется идея проекта для создания результатов. Цели скрипта и таблицы стилей создаются с помощью сборки. Сборка выполняется в среде NodeJs 14+ .
В процессе разработки использовался TypeScript, который требует поддержки языка TypeScript. Хотя большинство редакторов или IDE, поддерживающих TypeScript, уже имеют встроенную поддержку TypeScript, она может быть не самой последней версией. Можно установить последнюю версию TypeScript через npm, а затем проверить установленную версию с помощью команды tsc --version
.
TypeScript можно установить глобально или локально, рекомендуется использовать локальную установку:
tetris/> npm install typescript
tetris/> npx tsc --version
В последней перестройке используется <script type="module" ...></script>
для ссылки на скрипт, используется современный синтаксис JS, не требуется упаковка, также не требуется Babel для перевода, поэтому Babel и Gulp были удалены, и используется самый простой метод построения, реализованный с помощью сценариев npm.
Полная сборка выполняется с помощью команды npm run build
, обратите внимание, что эта команда не включает очистку старых результатов сборки.
— Сборка TypeScript напрямую использует команду tsc
, см. сценарий compile
в package.json
.
Из-за недостаточной дружественности TypeScript к
type="module"
, в исходном кодеimport
операторы должны иметь расширение.js
(обратите особое внимание — не.ts
) для файлов скриптов.
— Сборка LESS таблицы стилей использует команду lessc
, см. скрипт lessc
в package.json
.
— Копирование index.html
и jQuery
использует системные команды, см. сценарии copy-html
и copy-jquery
в package.json
.
— Очистка результатов сборки использует команду rm
Powershell Core, см. скрипт clean
в pckage.json
.
Поскольку используется type="module"
, нельзя напрямую открыть локальный index.html
, чтобы запустить его, необходимо опубликовать результаты сборки (dist
каталог) как статический веб-сайт и запустить его через HTTP-протокол. Веб-серверный контейнер можно выбрать из Nginx, IIS, Apache и т. д.
На основе стека технологий Node рекомендуется выбрать http-server, рекомендуется установить его глобально для удобства использования в различных средах разработки:
/> npm install -g http-server
/> cd d:/workspace/tetris/
/> http-server dist
Клавиша быстрого доступа | Функция |
---|---|
[UP] |
Вращение блока по часовой стрелке |
[LEFT] |
Перемещение влево |
[RIGHT] |
Перемещение вправо |
[DOWN] |
Перемещение вниз |
[SPACE] |
Падение прямо вниз |
— JavaScript версия тетриса; — Рефакторинг JavaScript версии тетриса; — Преобразование JavaScript версии тетриса в TypeScript.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )