Добро пожаловать в репозиторий CDNJS/Static-Website, дом нового веб-сайта CDNJS, построенного с Vue & Nuxt, после нового предложения брендинга CDNJS от CDNJS/Brand.
Этот веб -сайт полностью полагается на API CDNJS для работы, что приводит к очень низкому использованию ресурсов для обслуживания сайта и ограниченной логики приложений для обновления используемых данных (необходимо обновлять только карты сайта, все остальное использует вызовы API при загрузке страницы).
Этот проект работает на node.js. Пожалуйста, убедитесь, что у вас установлена версия, которая соответствует нашим определенным требованиям в файле .nvmrc для этого проекта.
В этот проект включен файл блокировки зависимости. Это используется для обеспечения того, чтобы все установки проекта использовали одну и ту же версию зависимостей для последовательности.
Вы можете установить зависимости узла после этого файла блокировки, запустив:
npm ciПосле установки зависимостей веб -сайт готов работать в режиме разработки. Чтобы запустить Nuxt в режиме разработки (без пользовательского сервера), запустите:
npm run dev Прежде чем запустить npm run dev , добавьте глобальный пакет NPM для разрешения 'NODE_ENV' is not recognized as an internal or external command : проблема:
npm install -g win-node-envВеб-сайт строится с использованием Nuxt и опирается на WebPack для создания пакета на стороне клиента, используемого для визуализации сайта и обеспечения интерактивности. Благодаря этому мы можем использовать анализатор WebPack, чтобы лучше понять, что способствует размеру конечного пакета.
Чтобы запустить анализатор, используйте следующий скрипт пакета:
npm run dev:analyze При работе с Сайтом в разработке используется npm run dev или npm run dev:analyze , переменная среды SITE_HOST будет автоматически устанавливать как http://localhost:3000/ , так как именно здесь сайт доступен с помощью сценария dev.
При развертывании этого сайта для производства, используя сценарии npm run build и npm run start , переменная среды SITE_HOST должна быть установлена и должна быть канонической базой для того, где будет размещен сайт. В производстве для нас это установлено на https://cdnjs.com/ .
Чтобы включить Google Analytics для развертывания сайта, вы должны установить переменную среды GA_ID . Это должно быть установлено на уникальный идентификатор Google Analytics для вашей собственности, в форме UA-xxxxxxxxx-x .
Google Analytics связана с сайтом с использованием модуля @nuxtjs/google-analytics . Если переменная среды не указана, Google Analytics не будет связана с развертыванием.
Чтобы включить базовый журнал ошибок Sentry, переменная среды SENTRY_DSN должна быть установлена с действительным URL DSN от Sentry.
Чтобы включить исходные карты и отслеживание выпуска для отчетности об ошибках в производстве, переменные среды SENTRY_ORG и SENTRY_PROJECT должны быть установлены с правильной информацией о проекте Sentry, а также SENTRY_AUTH_TOKEN установлены в действительный токен Auth от Sentry. Источники используются как в производстве. Мы используем минимизированный, комплексный JavaScript, поэтому Sourcemaps позволяет Sentry показать, откуда возникла ошибка в исходном коде.
По умолчанию во время процесса сборки файл robots.txt будет сгенерирован для сайта, который имеет User-agent: * и Allow: * . Если вы хотите иметь более личный экземпляр сайта или хотите предотвратить потенциальное загрязнение SEO, вы можете установить ROBOTS_DISALLOW Env Var на 1 . Это изменит Allow: * Правило будет Disallow: / .
Чтобы включить генерацию сайта для сайта, NODE_ENV должен быть установлен на production . Это позволит первоначальной генерации карты сайта во время сборки, а также фоновую задачу для восстановления карты сайта во время npm run start , каждые 30 минут.
Кроме того, имея NODE_ENV=production , это также сообщит сценарию генерации robots.txt , на который ссылается выше, включить правило, указывающее на файл индекса Sitemap, на основе предоставленного SITE_HOST ENV VAR.
(Обратите внимание, что для npm run dev:analyze , npm run build & npm run start , NODE_ENV будет автоматически установлен на production ).
Чтобы развернуть этот веб -сайт для производства, следует предпринять следующие шаги:
npm cinpm run buildnpm run start Для развертывания на некоторых хостах PAAS установка зависимостей и создание приложения будет автоматически выполнено, с npm run start определяется в Procfile .
Чтобы изменить порт, к которому привязан приложение, установите варную среду PORT при запуске сценария.
Custom Express Server используется для обработки наших сайтов, так как у нас есть слишком много маршрутов, чтобы предложение Nuxt Sitemap, чтобы надежно обрабатывать. Во время стадии сборки ( npm run build ) будут созданы начальные карты сайтов. Затем сервер Express будет регенерировать их каждые 30 минут, используя API CDNJS. Журнал, содержащий результат последнего поколения в Express, доступен по адресу /sitemap-log.txt на веб-сайте.
Наш полный набор тестов для лининга может быть запущен в любое время с:
npm testВ этот репозиторий включен файл конфигурации Eslint, а также файл конфигурации Sass-Lint, который поможет в обеспечении постоянного стиля в кодовой базе для JS/VUE и SCS, используемых в приложении.
Чтобы обеспечить соблюдение этого, мы используем и Eslint, и Sass-Lint в нашем тестировании. Чтобы запустить Eslint в любое время, которое проверяет стиль кода любых файлов JavaScript и VUE, вы можете использовать:
npm run test:eslintEslint также предоставляет автоматические возможности фиксации, их можно запустить против кодовой базы:
npm run test:eslint:fixТочно так же Sass-Lint можно запустить в любое время, чтобы проверить качество всех файлов SCSS, используемых в приложении, запустив:
npm run test:scssВторичный пакет, Sass-Lint-Auto-Fix, доступен для автоматического исправления некоторых ошибок, выраженных Sass-Lint, которые можно запустить с:
npm run test:scss:fix Как и в случае с npm test , который работает как Eslint, так и Sass-Lint, доступен более короткий сценарий пакета, чтобы автоматически попытаться исправить проблемы из обоих пакетов Linting, которые можно использовать при запуске:
npm run test:fix