feat: provide usable UMD builds for all packages (#2141)

This commit is contained in:
Tony Alves
2019-03-16 15:44:29 -07:00
committed by Shawn Erquhart
parent 1d935c704d
commit 82cc7941cc
89 changed files with 1025 additions and 712 deletions

View File

@ -21,7 +21,12 @@
],
"license": "MIT",
"dependencies": {
"@emotion/core": "^10.0.9",
"@emotion/styled": "^10.0.9",
"create-react-class": "^15.6.0",
"immutable": "^3.7.6",
"lodash": "^4.17.11",
"moment": "^2.24.0",
"netlify-cms-backend-bitbucket": "^2.1.3-beta.0",
"netlify-cms-backend-git-gateway": "^2.2.5-beta.0",
"netlify-cms-backend-github": "^2.2.3-beta.0",
@ -29,6 +34,7 @@
"netlify-cms-backend-test": "^2.0.7-beta.0",
"netlify-cms-core": "^2.8.1-beta.0",
"netlify-cms-editor-component-image": "^2.2.1-beta.0",
"netlify-cms-media-library-cloudinary": "^1.1.3-beta.0",
"netlify-cms-media-library-uploadcare": "^0.3.5-beta.0",
"netlify-cms-widget-boolean": "^2.0.6-beta.0",
"netlify-cms-widget-date": "^2.1.1-beta.0",
@ -43,14 +49,10 @@
"netlify-cms-widget-relation": "^2.1.3-beta.0",
"netlify-cms-widget-select": "^2.2.1-beta.0",
"netlify-cms-widget-string": "^2.0.5-beta.0",
"netlify-cms-widget-text": "^2.0.7-beta.0"
},
"devDependencies": {
"copy-webpack-plugin": "^5.0.1",
"cross-env": "^5.2.0",
"friendly-errors-webpack-plugin": "^1.7.0",
"webpack": "^4.29.6",
"webpack-cli": "^3.2.3",
"webpack-dev-server": "^3.2.1"
"netlify-cms-widget-text": "^2.0.7-beta.0",
"prop-types": "^15.7.2",
"react-immutable-proptypes": "^2.1.0",
"react": "^16.8.4",
"react-dom": "^16.8.4"
}
}

View File

@ -1,14 +1,12 @@
import cms from 'netlify-cms-core/src';
import { GitHubBackend } from 'netlify-cms-backend-github/src';
import { GitLabBackend } from 'netlify-cms-backend-gitlab/src';
import { GitGatewayBackend } from 'netlify-cms-backend-git-gateway/src';
import { BitbucketBackend } from 'netlify-cms-backend-bitbucket/src';
import { TestBackend } from 'netlify-cms-backend-test/src';
import { registerBackend } from 'netlify-cms-core/src';
import { Control as NetlifyCmsBackendGithub } from 'netlify-cms-backend-github/src';
import { Control as NetlifyCmsBackendGitlab } from 'netlify-cms-backend-gitlab/src';
import { Control as NetlifyCmsBackendGitGateway } from 'netlify-cms-backend-git-gateway/src';
import { Control as NetlifyCmsBackendBitbucket } from 'netlify-cms-backend-bitbucket/src';
import { Control as NetlifyCmsBackendTest } from 'netlify-cms-backend-test/src';
const { registerBackend } = cms;
registerBackend('git-gateway', GitGatewayBackend);
registerBackend('github', GitHubBackend);
registerBackend('gitlab', GitLabBackend);
registerBackend('bitbucket', BitbucketBackend);
registerBackend('test-repo', TestBackend);
registerBackend('git-gateway', NetlifyCmsBackendGitGateway);
registerBackend('github', NetlifyCmsBackendGithub);
registerBackend('gitlab', NetlifyCmsBackendGitlab);
registerBackend('bitbucket', NetlifyCmsBackendBitbucket);
registerBackend('test-repo', NetlifyCmsBackendTest);

View File

@ -1,6 +1,4 @@
import cms from 'netlify-cms-core/src';
import { registerEditorComponent } from 'netlify-cms-core/src';
import image from 'netlify-cms-editor-component-image/src';
const { registerEditorComponent } = cms;
registerEditorComponent(image);

View File

@ -1,6 +1,6 @@
import createReactClass from 'create-react-class';
import React from 'react';
import CMS, { init } from 'netlify-cms-core/src';
import * as CMS from 'netlify-cms-core/src';
import './backends';
import './widgets';
import './editor-components';
@ -10,7 +10,7 @@ import './media-libraries';
* Load Netlify CMS automatically if `window.CMS_MANUAL_INIT` is set.
*/
if (!window.CMS_MANUAL_INIT) {
init();
CMS.init();
} else {
console.log('`window.CMS_MANUAL_INIT` flag set, skipping automatic initialization.');
}
@ -20,9 +20,10 @@ if (!window.CMS_MANUAL_INIT) {
*/
if (typeof window !== 'undefined') {
window.CMS = CMS;
window.initCMS = init;
window.initCMS = CMS.init;
window.createClass = window.createClass || createReactClass;
window.h = window.h || React.createElement;
}
export { CMS as default, init };
export const NetlifyCms = CMS;
export { CMS as default };

View File

@ -1,8 +1,6 @@
import cms from 'netlify-cms-core/src';
import { registerMediaLibrary } from 'netlify-cms-core/src';
import uploadcare from 'netlify-cms-media-library-uploadcare/src';
import cloudinary from 'netlify-cms-media-library-cloudinary/src';
const { registerMediaLibrary } = cms;
registerMediaLibrary(uploadcare);
registerMediaLibrary(cloudinary);

View File

@ -1,31 +1,69 @@
import cms from 'netlify-cms-core/src';
import { StringControl, StringPreview } from 'netlify-cms-widget-string/src';
import { NumberControl, NumberPreview } from 'netlify-cms-widget-number/src';
import { TextControl, TextPreview } from 'netlify-cms-widget-text/src';
import { ImageControl, ImagePreview } from 'netlify-cms-widget-image/src';
import { FileControl, FilePreview } from 'netlify-cms-widget-file/src';
import { SelectControl, SelectPreview } from 'netlify-cms-widget-select/src';
import { MarkdownControl, MarkdownPreview } from 'netlify-cms-widget-markdown/src';
import { ListControl, ListPreview } from 'netlify-cms-widget-list/src';
import { ObjectControl, ObjectPreview } from 'netlify-cms-widget-object/src';
import { RelationControl, RelationPreview } from 'netlify-cms-widget-relation/src';
import { BooleanControl } from 'netlify-cms-widget-boolean/src';
import { MapControl, MapPreview } from 'netlify-cms-widget-map/src';
import { registerWidget } from 'netlify-cms-core/src';
import * as NetlifyCmsWidgetString from 'netlify-cms-widget-string/src';
import * as NetlifyCmsWidgetNumber from 'netlify-cms-widget-number/src';
import * as NetlifyCmsWidgetText from 'netlify-cms-widget-text/src';
import * as NetlifyCmsWidgetImage from 'netlify-cms-widget-image/src';
import * as NetlifyCmsWidgetFile from 'netlify-cms-widget-file/src';
import * as NetlifyCmsWidgetSelect from 'netlify-cms-widget-select/src';
import * as NetlifyCmsWidgetMarkdown from 'netlify-cms-widget-markdown/src';
import * as NetlifyCmsWidgetList from 'netlify-cms-widget-list/src';
import * as NetlifyCmsWidgetObject from 'netlify-cms-widget-object/src';
import * as NetlifyCmsWidgetRelation from 'netlify-cms-widget-relation/src';
import * as NetlifyCmsWidgetBoolean from 'netlify-cms-widget-boolean/src';
import * as NetlifyCmsWidgetMap from 'netlify-cms-widget-map/src';
import DateWidget from 'netlify-cms-widget-date/src';
import DateTimeWidget from 'netlify-cms-widget-datetime/src';
const { registerWidget } = cms;
registerWidget('string', StringControl, StringPreview);
registerWidget('text', TextControl, TextPreview);
registerWidget('number', NumberControl, NumberPreview);
registerWidget('list', ListControl, ListPreview);
registerWidget('markdown', MarkdownControl, MarkdownPreview);
registerWidget('image', ImageControl, ImagePreview);
registerWidget('file', FileControl, FilePreview);
registerWidget('select', SelectControl, SelectPreview);
registerWidget('object', ObjectControl, ObjectPreview);
registerWidget('relation', RelationControl, RelationPreview);
registerWidget('boolean', BooleanControl);
registerWidget('map', MapControl, MapPreview);
registerWidget(
'string',
NetlifyCmsWidgetString.controlComponent,
NetlifyCmsWidgetString.previewComponent,
);
registerWidget(
'number',
NetlifyCmsWidgetNumber.controlComponent,
NetlifyCmsWidgetNumber.previewComponent,
);
registerWidget(
'text',
NetlifyCmsWidgetText.controlComponent,
NetlifyCmsWidgetText.previewComponent,
);
registerWidget(
'list',
NetlifyCmsWidgetList.controlComponent,
NetlifyCmsWidgetList.previewComponent,
);
registerWidget(
'markdown',
NetlifyCmsWidgetMarkdown.controlComponent,
NetlifyCmsWidgetMarkdown.previewComponent,
);
registerWidget(
'image',
NetlifyCmsWidgetImage.controlComponent,
NetlifyCmsWidgetImage.previewComponent,
);
registerWidget(
'file',
NetlifyCmsWidgetFile.controlComponent,
NetlifyCmsWidgetFile.previewComponent,
);
registerWidget(
'select',
NetlifyCmsWidgetSelect.controlComponent,
NetlifyCmsWidgetSelect.previewComponent,
);
registerWidget(
'object',
NetlifyCmsWidgetObject.controlComponent,
NetlifyCmsWidgetObject.previewComponent,
);
registerWidget(
'relation',
NetlifyCmsWidgetRelation.controlComponent,
NetlifyCmsWidgetRelation.previewComponent,
);
registerWidget('boolean', NetlifyCmsWidgetBoolean.controlComponent);
registerWidget('map', NetlifyCmsWidgetMap.controlComponent, NetlifyCmsWidgetMap.previewComponent);
registerWidget([DateWidget(), DateTimeWidget()]);

View File

@ -3,13 +3,14 @@ const webpack = require('webpack');
const FriendlyErrorsWebpackPlugin = require('friendly-errors-webpack-plugin');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const pkg = require('./package.json');
const { plugins } = require('../../scripts/webpack');
const coreWebpackConfig = require('../netlify-cms-core/webpack.config.js');
const { getConfig, plugins } = require('../../scripts/webpack');
const baseWebpackConfig = getConfig({ baseOnly: true });
const isProduction = process.env.NODE_ENV === 'production';
console.log(`${pkg.version}${isProduction ? '' : '-dev'}`);
const baseConfig = {
...coreWebpackConfig,
...baseWebpackConfig,
context: path.join(__dirname, 'src'),
entry: './index.js',
plugins: [
@ -25,7 +26,7 @@ const baseConfig = {
messages: ['Netlify CMS is now running at http://localhost:8080'],
},
}),
new CopyWebpackPlugin([{ from: '../shims/cms.css', to: 'dist/' }]),
new CopyWebpackPlugin([{ from: '../shims/cms.css', to: './' }]),
],
devServer: {
contentBase: '../../dev-test',
@ -49,7 +50,7 @@ if (isProduction) {
entry: [path.join(__dirname, 'shims/deprecate-old-dist.js'), baseConfig.entry],
output: {
...baseConfig.output,
filename: 'dist/cms.js',
filename: 'cms.js',
},
},
];