Существует несколько способов получить код Blockly, и несколько способов загрузить его после получения.
Скрипт создания пакета
Blockly предоставляет скрипт, который инициализирует базовое приложение, которое затем можно модифицировать. Он использует распространенные инструменты веб-разработки, такие как webpack и eslint , но не включает в себя фреймворк, например, React или Angular.
Для этого необходимо установить Node.js и npm перед выполнением следующих команд.
Чтобы создать приложение, написанное на JavaScript, в новой директории hello-world :
npx @blockly/create-package app hello-world
Чтобы создать приложение, написанное на TypeScript, в новой директории hello-world :
npx @blockly/create-package app hello-world --typescript
Эти команды создают пакет, который импортирует целевые пакеты . Также используется файл package.json для управления зависимостями, что упрощает отслеживание актуальности Blockly до последней версии.
В комплект также входят несколько удобных стартовых скриптов, например, для локального тестирования проекта в браузере:
cd hello-world
npm run start
Для получения информации о других командах вы можете обратиться к сгенерированному файлу package.json.
Unpkg
Если вы просто экспериментируете с идеями и не хотите запускать полноценное приложение, вы можете загрузить Blockly из unpkg, используя теги <script>.
Если добавить следующий код на любую HTML-страницу, вы сможете открыть HTML-код непосредственно в браузере и поэкспериментировать с Blockly:
<!-- Load Blockly core -->
<script src="https://unpkg.com/blockly/blockly_compressed.js"></script>
<!-- Load the default blocks -->
<script src="https://unpkg.com/blockly/blocks_compressed.js"></script>
<!-- Load a generator -->
<script src="https://unpkg.com/blockly/javascript_compressed.js"></script>
<!-- Load a message file -->
<script src="https://unpkg.com/blockly/msg/en.js"></script>
Это не лучшее долгосрочное решение для приобретения Blockly, поскольку оно не работает с такими сборщиками, как webpack, но оно хорошо подходит для прототипирования и экспериментов.
Получить код
Существует несколько способов запустить код Blockly.
Команда Blockly рекомендует подключать Blockly через менеджер пакетов (например, NPM или Yarn ), потому что:
- Следить за изменениями в Blockly стало проще.
- Это поощряет использование плагинов вместо модификации Blockly с помощью «обезьяньих патчей».
НПМ
npm install blockly --save
Пряжа
yarn add blockly
GitHub
Вы также можете загрузить сжатый код из наших релизов на GitHub . Однако для этого вам потребуется регулярно вручную загружать код, чтобы получать последние обновления и исправления для Blockly.
Загрузите код
Получив код, вы можете получить к нему доступ несколькими способами из своего кода.
Теги скрипта
<!-- Load Blockly core -->
<script src="./my-lib-directory/blockly/blockly_compressed.js"></script>
<!-- Load the default blocks -->
<script src="./my-lib-directory/blockly/blocks_compressed.js"></script>
<!-- Load a generator -->
<script src="./my-lib-directory/blockly/javascript_compressed.js"></script>
<!-- Load a message file -->
<script src="./my-lib-directory/blockly/msg/en.js"></script>
При использовании тегов <script> вы можете получить доступ к импортам из глобального пространства имен:
// Access Blockly.
Blockly.thing;
// Access the default blocks.
Blockly.libraryBlocks['block_type'];
// Access the generator.
javascript.javascriptGenerator;
Импорт
// Import Blockly core.
import * as Blockly from 'blockly/core';
// Import the default blocks.
import * as libraryBlocks from 'blockly/blocks';
// Import a generator.
import {javascriptGenerator} from 'blockly/javascript';
// Import a message file.
import * as En from 'blockly/msg/en';
При импорте файлов сообщений необходимо также их применить.
Blockly.setLocale(En);
Требует
// Require Blockly core.
const Blockly = require('blockly/core');
// Require the default blocks.
const libraryBlocks = require('blockly/blocks');
// Require a generator.
const {javascriptGenerator} = require('blockly/javascript');
// Require a message file.
const En = require('blockly/msg/en');
Если вам требуются файлы сообщений, вам также необходимо их применить.
Blockly.setLocale(En);