mirror of
https://github.com/codex-team/editor.js
synced 2026-03-16 15:45:47 +01:00
* Autoloading improved, utilities now global
# Autoloading
Webpack специально не дает использовать переменные в реквайрах типа:
let moduleName = 'toolbar.js';
let module = require(moduleName);
У нас в автолоадинге было так:
let modules = editorModules.map( module =>
require('./components/modules/' + module ));
и это работало, но не так как нужно. Он подключал не только нужные
модули из массива editorModules, а вообще все модули из папки
components/modules. Я заметил, что они попадают в сборку, хоть и не
указаны в реквайрах. Оказывается это так и задумано: Webpack на этапе
компиляции не знает что будет в переменной, то есть какой там будет
модуль. А ему нужно высчитать время компиляции, поэтому он вкладывет в
сброрку тупо все файлы из этой папки, и для каждого высчитывает время.
Так что по сути это было то же самое что просто написать
require('./components/modules/') и подключить все файлы.
Но наш автолоадер должен был подключать только указанные файлы, не
заходить в подпапки и не включать файлы, начинающиеся с подчеркивания.
Теперь автолоадинг работает так, как и задумывалось.
# Global visible modules
Теперь не нужно в каждом файле писать
import $ from '../dom';
и тд. Они автоматически будут доступны внутри модулей
* Update util.Dom
* Remove duplicated Babel helpers. Now it will be defined at once
42 lines
1.3 KiB
JSON
42 lines
1.3 KiB
JSON
{
|
|
"name": "codex.editor",
|
|
"version": "2.0.0",
|
|
"description": "Codex Editor. Native JS, based on API and Open Source",
|
|
"main": "index.js",
|
|
"scripts": {
|
|
"build": "webpack --progress --display-error-details --display-entrypoints"
|
|
},
|
|
"author": "Codex Team",
|
|
"license": "ISC",
|
|
"devDependencies": {
|
|
"babel-core": "^6.26.0",
|
|
"babel-loader": "^7.1.2",
|
|
"babel-plugin-class-display-name": "^2.1.0",
|
|
"babel-plugin-transform-helper": "0.0.6",
|
|
"babel-polyfill": "^6.26.0",
|
|
"babel-preset-es2015": "^6.24.1",
|
|
"babel-runtime": "^6.26.0",
|
|
"css-loader": "^0.28.7",
|
|
"eslint": "^4.11.0",
|
|
"eslint-loader": "^1.9.0",
|
|
"extract-text-webpack-plugin": "^3.0.2",
|
|
"html-janitor": "^2.0.2",
|
|
"path": "^0.12.7",
|
|
"postcss-apply": "^0.8.0",
|
|
"postcss-color-function": "^4.0.1",
|
|
"postcss-color-hex-alpha": "^3.0.0",
|
|
"postcss-cssnext": "^3.0.2",
|
|
"postcss-custom-media": "^6.0.0",
|
|
"postcss-custom-properties": "^6.2.0",
|
|
"postcss-custom-selectors": "^4.0.1",
|
|
"postcss-font-family-system-ui": "^2.1.1",
|
|
"postcss-font-variant": "^3.0.0",
|
|
"postcss-loader": "^2.0.9",
|
|
"postcss-media-minmax": "^3.0.0",
|
|
"postcss-nested": "^2.1.2",
|
|
"postcss-nested-ancestors": "^1.0.0",
|
|
"postcss-nesting": "^4.2.1",
|
|
"postcss-smart-import": "^0.7.5",
|
|
"webpack": "^3.8.1"
|
|
}
|
|
}
|