1
0
mirror of https://github.com/ianstormtaylor/slate.git synced 2025-08-23 07:22:55 +02:00

Switch to using Rollup for bundling (#1568)

* Implement first working rollup config for main slate pkg

* Convert slate-base64-serializer to rollup

* Convert slate-dev-logger to rollup

* Convert slate-html-serializer to rollup

* Convert slate-hyperscript to rollup

* Convert slate-plain-serializer to rollup

* Convert slate-prop-types to rollup

* Convert (mostly) slate-react to rollup

* Convert slate-simulator to rollup

* Misc cleanup and configuration tweaks/fixes

* Convert slate-schema-violations to rollup

* Successful rollup build for top-level examples

* Add plugin to replace process.env.NODE_ENV

* Only rebuild modules and dev examples in watch mode

* Enable sourcemaps for development builds

* Force debug to use browser version, remove builtins plugin

* Remove is-image from example
It relies on node `path` and wouldn't work well in-browser anyway

* Use browser version of react-dom/server

* Move stray require to import

* Configure examples to watch child package output

* Fix tests

* Remove unneeded preferBuiltins from resolve config

* Use more precise files array to ensure sourcemaps aren't included

* Use lodash instead of lodash.throttle
It's pulled in anyway since slate-react needs slate, so using the
minipackage actually causes code duplication

* Improve naming/fix UMD builds, update UMD doc

* Add rollup configs to linting, add a missing dep to package.json

* Use longform rollup CLI flags

* Add rollup-plugin-auto-external to reduce external module configuration

* Combine rollup config into a unioned helper

* Centralize to a single rollup configuration

* Update dist structure and package field naming for PR feedback

* Add comments and address PR feedback on rollup config

* i.e. -> e.g.

* Add some spacing to the configuration to improve readability

* Add a bit more spacing

* Remove umd from example Slate unpkg link
This commit is contained in:
Zach Schneider
2018-02-02 18:46:36 -05:00
committed by Ian Storm Taylor
parent c044d048ad
commit 228b97ff29
25 changed files with 604 additions and 1483 deletions

View File

@@ -4,7 +4,10 @@
"version": "0.2.21",
"license": "MIT",
"repository": "git://github.com/ianstormtaylor/slate.git",
"main": "./lib/index.js",
"main": "lib/slate-base64-serializer.js",
"module": "lib/slate-base64-serializer.es.js",
"umd": "dist/slate-base64-serializer.js",
"umdMin": "dist/slate-base64-serializer.min.js",
"files": [
"dist/",
"lib/"
@@ -13,24 +16,16 @@
"slate": "^0.32.1"
},
"devDependencies": {
"babel-cli": "^6.10.1",
"browserify": "^13.0.1",
"mocha": "^2.5.3",
"slate": "^0.32.2",
"uglify-js": "^2.7.0"
"slate": "^0.32.2"
},
"dependencies": {
"isomorphic-base64": "^1.0.2"
},
"scripts": {
"build": "babel --out-dir ./lib ./src",
"build:max": "mkdir -p ./dist && NODE_ENV=production browserify ./src/index.js --transform babelify --transform envify --transform [ browserify-global-shim --global ] --standalone SlateBase64Serializer > ./dist/slate-base64-serializer.js",
"build:min": "mkdir -p ./dist && NODE_ENV=production browserify ./src/index.js --transform babelify --transform envify --transform [ browserify-global-shim --global ] --transform uglifyify --standalone SlateBase64Serializer | uglifyjs > ./dist/slate-base64-serializer.min.js",
"clean": "rm -rf ./dist ./lib ./node_modules",
"prepublish": "yarn run build && yarn run build:max && yarn run build:min",
"watch": "babel --watch --out-dir ./lib ./src --source-maps inline"
"clean": "rm -rf ./dist ./lib ./node_modules"
},
"browserify-global-shim": {
"umdGlobals": {
"slate": "Slate"
},
"keywords": [

View File

@@ -4,24 +4,19 @@
"version": "0.1.37",
"license": "MIT",
"repository": "git://github.com/ianstormtaylor/slate.git",
"main": "./lib/index.js",
"main": "lib/slate-dev-logger.js",
"module": "lib/slate-dev-logger.es.js",
"umd": "dist/slate-dev-logger.js",
"umdMin": "dist/slate-dev-logger.min.js",
"files": [
"dist/",
"lib/"
],
"devDependencies": {
"babel-cli": "^6.10.1",
"browserify": "^13.0.1",
"mocha": "^2.5.3",
"uglify-js": "^2.7.0"
"mocha": "^2.5.3"
},
"scripts": {
"build": "babel --out-dir ./lib ./src",
"build:max": "mkdir -p ./dist && NODE_ENV=production browserify ./src/index.js --transform babelify --transform envify --transform [ browserify-global-shim --global ] --standalone SlateDevLogger > ./dist/slate-dev-logger.js",
"build:min": "mkdir -p ./dist && NODE_ENV=production browserify ./src/index.js --transform babelify --transform envify --transform [ browserify-global-shim --global ] --transform uglifyify --standalone SlateDevLogger | uglifyjs > ./dist/slate-dev-logger.min.js",
"clean": "rm -rf ./dist ./lib ./node_modules",
"prepublish": "yarn run build && yarn run build:max && yarn run build:min",
"watch": "babel --watch --out-dir ./lib ./src --source-maps inline"
"clean": "rm -rf ./dist ./lib ./node_modules"
},
"keywords": [
"slate"

View File

@@ -4,7 +4,10 @@
"version": "0.5.2",
"license": "MIT",
"repository": "git://github.com/ianstormtaylor/slate.git",
"main": "./lib/index.js",
"main": "lib/slate-html-serializer.js",
"module": "lib/slate-html-serializer.es.js",
"umd": "dist/slate-html-serializer.js",
"umdMin": "dist/slate-html-serializer.min.js",
"files": [
"dist/",
"lib/"
@@ -20,22 +23,14 @@
"slate": "^0.32.1"
},
"devDependencies": {
"babel-cli": "^6.10.1",
"browserify": "^13.0.1",
"mocha": "^2.5.3",
"slate": "^0.32.2",
"slate-hyperscript": "^0.5.2",
"uglify-js": "^2.7.0"
"slate-hyperscript": "^0.5.2"
},
"scripts": {
"build": "babel --out-dir ./lib ./src",
"build:max": "mkdir -p ./dist && NODE_ENV=production browserify ./src/index.js --transform babelify --transform envify --transform [ browserify-global-shim --global ] --standalone SlateHtmlSerializer > ./dist/slate-html-serializer.js",
"build:min": "mkdir -p ./dist && NODE_ENV=production browserify ./src/index.js --transform babelify --transform envify --transform [ browserify-global-shim --global ] --transform uglifyify --standalone SlateHtmlSerializer | uglifyjs > ./dist/slate-html-serializer.min.js",
"clean": "rm -rf ./dist ./lib ./node_modules",
"prepublish": "yarn run build && yarn run build:max && yarn run build:min",
"watch": "babel --watch --out-dir ./lib ./src --source-maps inline"
"clean": "rm -rf ./dist ./lib ./node_modules"
},
"browserify-global-shim": {
"umdGlobals": {
"immutable": "Immutable",
"react": "React",
"react-dom": "ReactDOM",

View File

@@ -1,6 +1,6 @@
import React from 'react'
import ReactDOMServer from 'react-dom/server'
import { renderToStaticMarkup } from 'react-dom/server'
import typeOf from 'type-of'
import { Node, Value } from 'slate'
import { Record } from 'immutable'
@@ -321,7 +321,7 @@ class Html {
const elements = document.nodes.map(this.serializeNode)
if (options.render === false) return elements
const html = ReactDOMServer.renderToStaticMarkup(<body>{elements}</body>)
const html = renderToStaticMarkup(<body>{elements}</body>)
const inner = html.slice(6, -7)
return inner
}

View File

@@ -4,7 +4,10 @@
"version": "0.5.2",
"license": "MIT",
"repository": "git://github.com/ianstormtaylor/slate.git",
"main": "./lib/index.js",
"main": "lib/slate-hyperscript.js",
"module": "lib/slate-hyperscript.es.js",
"umd": "dist/slate-hyperscript.js",
"umdMin": "dist/slate-hyperscript.min.js",
"files": [
"dist/",
"lib/"
@@ -18,21 +21,13 @@
"slate": "^0.32.1"
},
"devDependencies": {
"babel-cli": "^6.10.1",
"browserify": "^13.0.1",
"mocha": "^2.5.3",
"slate": "^0.32.2",
"uglify-js": "^2.7.0"
"slate": "^0.32.2"
},
"scripts": {
"build": "babel --out-dir ./lib ./src",
"build:max": "mkdir -p ./dist && NODE_ENV=production browserify ./src/index.js --transform babelify --transform envify --transform [ browserify-global-shim --global ] --standalone SlateHyperscript > ./dist/slate-hyperscript.js",
"build:min": "mkdir -p ./dist && NODE_ENV=production browserify ./src/index.js --transform babelify --transform envify --transform [ browserify-global-shim --global ] --transform uglifyify --standalone SlateHyperscript | uglifyjs > ./dist/slate-hyperscript.min.js",
"clean": "rm -rf ./dist ./lib ./node_modules",
"prepublish": "yarn run build && yarn run build:max && yarn run build:min",
"watch": "babel --watch --out-dir ./lib ./src --source-maps inline"
"clean": "rm -rf ./dist ./lib ./node_modules"
},
"browserify-global-shim": {
"umdGlobals": {
"slate": "Slate"
},
"keywords": [

View File

@@ -4,7 +4,10 @@
"version": "0.5.2",
"license": "MIT",
"repository": "git://github.com/ianstormtaylor/slate.git",
"main": "./lib/index.js",
"main": "lib/slate-plain-serializer.js",
"module": "lib/slate-plain-serializer.es.js",
"umd": "dist/slate-plain-serializer.js",
"umdMin": "dist/slate-plain-serializer.min.js",
"files": [
"dist/",
"lib/"
@@ -17,22 +20,14 @@
"slate": "^0.32.1"
},
"devDependencies": {
"babel-cli": "^6.10.1",
"browserify": "^13.0.1",
"mocha": "^2.5.3",
"slate": "^0.32.2",
"slate-hyperscript": "^0.5.2",
"uglify-js": "^2.7.0"
"slate-hyperscript": "^0.5.2"
},
"scripts": {
"build": "babel --out-dir ./lib ./src",
"build:max": "mkdir -p ./dist && NODE_ENV=production browserify ./src/index.js --transform babelify --transform envify --transform [ browserify-global-shim --global ] --standalone SlatePlainSerializer > ./dist/slate-plain-serializer.js",
"build:min": "mkdir -p ./dist && NODE_ENV=production browserify ./src/index.js --transform babelify --transform envify --transform [ browserify-global-shim --global ] --transform uglifyify --standalone SlatePlainSerializer | uglifyjs > ./dist/slate-plain-serializer.min.js",
"clean": "rm -rf ./dist ./lib ./node_modules",
"prepublish": "yarn run build && yarn run build:max && yarn run build:min",
"watch": "babel --watch --out-dir ./lib ./src --source-maps inline"
"clean": "rm -rf ./dist ./lib ./node_modules"
},
"browserify-global-shim": {
"umdGlobals": {
"immutable": "Immutable",
"slate": "Slate"
},

View File

@@ -4,7 +4,10 @@
"version": "0.4.19",
"license": "MIT",
"repository": "git://github.com/ianstormtaylor/slate.git",
"main": "./lib/index.js",
"main": "lib/slate-prop-types.js",
"module": "lib/slate-prop-types.es.js",
"umd": "dist/slate-prop-types.js",
"umdMin": "dist/slate-prop-types.min.js",
"files": [
"dist/",
"lib/"
@@ -17,21 +20,13 @@
"slate": "^0.32.1"
},
"devDependencies": {
"babel-cli": "^6.10.1",
"browserify": "^13.0.1",
"mocha": "^2.5.3",
"slate": "^0.32.2",
"uglify-js": "^2.7.0"
"slate": "^0.32.2"
},
"scripts": {
"build": "babel --out-dir ./lib ./src",
"build:max": "mkdir -p ./dist && NODE_ENV=production browserify ./src/index.js --transform babelify --transform envify --transform [ browserify-global-shim --global ] --standalone SlatePropTypes > ./dist/slate-prop-types.js",
"build:min": "mkdir -p ./dist && NODE_ENV=production browserify ./src/index.js --transform babelify --transform envify --transform [ browserify-global-shim --global ] --transform uglifyify --standalone SlatePropTypes | uglifyjs > ./dist/slate-prop-types.min.js",
"clean": "rm -rf ./dist ./lib ./node_modules",
"prepublish": "yarn run build && yarn run build:max && yarn run build:min",
"watch": "babel --watch --out-dir ./lib ./src --source-maps inline"
"clean": "rm -rf ./dist ./lib ./node_modules"
},
"browserify-global-shim": {
"umdGlobals": {
"immutable": "Immutable",
"slate": "Slate"
},

View File

@@ -4,7 +4,10 @@
"version": "0.11.2",
"license": "MIT",
"repository": "git://github.com/ianstormtaylor/slate.git",
"main": "./lib/index.js",
"main": "lib/slate-react.js",
"module": "lib/slate-react.es.js",
"umd": "dist/slate-react.js",
"umdMin": "dist/slate-react.min.js",
"files": [
"dist/",
"lib/"
@@ -16,7 +19,7 @@
"is-in-browser": "^1.1.3",
"is-window": "^1.0.2",
"keycode": "^2.1.2",
"lodash.throttle": "^4.1.1",
"lodash": "^4.1.1",
"prop-types": "^15.5.8",
"react-immutable-proptypes": "^2.1.0",
"react-portal": "^3.1.0",
@@ -32,26 +35,18 @@
"slate": "^0.32.1"
},
"devDependencies": {
"babel-cli": "^6.10.1",
"browserify": "^13.0.1",
"mocha": "^2.5.3",
"slate": "^0.32.2",
"slate-hyperscript": "^0.5.2",
"slate-simulator": "^0.4.19",
"uglify-js": "^2.7.0"
"slate-simulator": "^0.4.19"
},
"scripts": {
"build": "babel --out-dir ./lib ./src",
"build:max": "mkdir -p ./dist && NODE_ENV=production browserify ./src/index.js --transform babelify --transform envify --transform [ browserify-global-shim --global ] --standalone SlateReact > ./dist/slate-react.js",
"build:min": "mkdir -p ./dist && NODE_ENV=production browserify ./src/index.js --transform babelify --transform envify --transform [ browserify-global-shim --global ] --transform uglifyify --standalone SlateReact | uglifyjs > ./dist/slate-react.min.js",
"clean": "rm -rf ./dist ./lib ./node_modules",
"prepublish": "yarn run build && yarn run build:max && yarn run build:min",
"watch": "babel --watch --out-dir ./lib ./src --source-maps inline"
"clean": "rm -rf ./dist ./lib ./node_modules"
},
"browserify-global-shim": {
"umdGlobals": {
"immutable": "Immutable",
"react": "React",
"react-dom": "ReactDOM",
"react-dom/server": "ReactDOMServer",
"slate": "Slate"
},
"keywords": [

View File

@@ -4,7 +4,7 @@ import React from 'react'
import Types from 'prop-types'
import getWindow from 'get-window'
import logger from 'slate-dev-logger'
import throttle from 'lodash.throttle'
import throttle from 'lodash/throttle'
import EVENT_HANDLERS from '../constants/event-handlers'
import Node from './node'

View File

@@ -4,25 +4,20 @@
"version": "0.1.0",
"license": "MIT",
"repository": "git://github.com/ianstormtaylor/slate.git",
"main": "./lib/index.js",
"main": "lib/slate-schema-violations.js",
"module": "lib/slate-schema-violations.es.js",
"umd": "dist/slate-schema-violations.js",
"umdMin": "dist/slate-schema-violations.min.js",
"files": [
"dist/",
"lib/"
],
"devDependencies": {
"babel-cli": "^6.10.1",
"browserify": "^13.0.1",
"mocha": "^2.5.3",
"slate": "^0.32.2",
"uglify-js": "^2.7.0"
"slate": "^0.32.2"
},
"scripts": {
"build": "babel --out-dir ./lib ./src",
"build:max": "mkdir -p ./dist && NODE_ENV=production browserify ./src/index.js --transform babelify --transform envify --transform [ browserify-global-shim --global ] --standalone SlateSchemaViolations > ./dist/slate-schema-violations.js",
"build:min": "mkdir -p ./dist && NODE_ENV=production browserify ./src/index.js --transform babelify --transform envify --transform [ browserify-global-shim --global ] --transform uglifyify --standalone SlateSchemaViolations | uglifyjs > ./dist/slate-schema-violations.min.js",
"clean": "rm -rf ./dist ./lib ./node_modules",
"prepublish": "yarn run build && yarn run build:max && yarn run build:min",
"watch": "babel --watch --out-dir ./lib ./src --source-maps inline"
"clean": "rm -rf ./dist ./lib ./node_modules"
},
"keywords": [
"constants",

View File

@@ -4,30 +4,24 @@
"version": "0.4.19",
"license": "MIT",
"repository": "git://github.com/ianstormtaylor/slate.git",
"main": "./lib/index.js",
"main": "lib/slate-simulator.js",
"module": "lib/slate-simulator.es.js",
"umd": "dist/slate-simulator.js",
"umdMin": "dist/slate-simulator.min.js",
"files": [
"dist/",
"lib/"
],
"peerDependencies": {
"slate": "^0.32.1",
"slate-dev-logger": "^0.1.23"
"slate": "^0.32.1"
},
"devDependencies": {
"babel-cli": "^6.10.1",
"browserify": "^13.0.1",
"slate": "^0.32.2",
"uglify-js": "^2.7.0"
"slate": "^0.32.2"
},
"scripts": {
"build": "babel --out-dir ./lib ./src",
"build:max": "mkdir -p ./dist && NODE_ENV=production browserify ./src/index.js --transform babelify --transform envify --transform [ browserify-global-shim --global ] --standalone SlateSimulator > ./dist/slate-simulator.js",
"build:min": "mkdir -p ./dist && NODE_ENV=production browserify ./src/index.js --transform babelify --transform envify --transform [ browserify-global-shim --global ] --transform uglifyify --standalone SlateSimulator | uglifyjs > ./dist/slate-simulator.min.js",
"clean": "rm -rf ./dist ./lib ./node_modules",
"prepublish": "yarn run build && yarn run build:max && yarn run build:min",
"watch": "babel --watch --out-dir ./lib ./src --source-maps inline"
"clean": "rm -rf ./dist ./lib ./node_modules"
},
"browserify-global-shim": {
"umdGlobals": {
"slate": "Slate"
},
"keywords": [

View File

@@ -4,7 +4,10 @@
"version": "0.32.2",
"license": "MIT",
"repository": "git://github.com/ianstormtaylor/slate.git",
"main": "./lib/index.js",
"main": "lib/slate.js",
"module": "lib/slate.es.js",
"umd": "dist/slate.js",
"umdMin": "dist/slate.min.js",
"files": [
"dist/",
"lib/"
@@ -25,21 +28,12 @@
"react": "^0.14.0 || ^15.0.0 || ^16.0.0"
},
"devDependencies": {
"babel-cli": "^6.10.1",
"browserify": "^13.0.1",
"slate-hyperscript": "^0.5.2",
"uglify-js": "^2.7.0"
"slate-hyperscript": "^0.5.2"
},
"scripts": {
"build": "babel --out-dir ./lib ./src",
"build:max": "mkdir -p ./dist && NODE_ENV=production browserify ./src/index.js --transform babelify --transform envify --transform [ browserify-global-shim --global ] --standalone Slate > ./dist/slate.js",
"build:min": "mkdir -p ./dist && NODE_ENV=production browserify ./src/index.js --transform babelify --transform envify --transform [ browserify-global-shim --global ] --transform uglifyify --standalone Slate | uglifyjs > ./dist/slate.min.js",
"clean": "rm -rf ./dist ./lib ./node_modules",
"prepublish": "yarn run build && yarn run build:max && yarn run build:min",
"watch": "babel --watch --out-dir ./lib ./src --source-maps inline"
"clean": "rm -rf ./dist ./lib ./node_modules"
},
"browserify-global-shim": {
"react": "React",
"umdGlobals": {
"immutable": "Immutable"
},
"keywords": [

View File

@@ -1,5 +1,6 @@
import Block from './models/block'
import Change from './models/change'
import Changes from './changes'
import Character from './models/character'
import Data from './models/data'
@@ -26,6 +27,7 @@ import { resetKeyGenerator, setKeyGenerator } from './utils/generate-key'
export {
Block,
Change,
Changes,
Character,
Data,

View File

@@ -4,6 +4,7 @@ import logger from 'slate-dev-logger'
import { Record, Set, List, Map } from 'immutable'
import MODEL_TYPES from '../constants/model-types'
import Change from './change'
import Data from './data'
import Document from './document'
import History from './history'
@@ -621,7 +622,6 @@ class Value extends Record(DEFAULTS) {
*/
change(attrs = {}) {
const Change = require('./change').default
return new Change({ ...attrs, value: this })
}