editor.js/package.json
Peter Savchenko 5f670c3985
Autoloading improved, utilities now global (#225)
* 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
2017-12-02 15:35:55 +03:00

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"
}
}