Compare commits
2 Commits
webpack-up
...
4.0.6
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b717abdd1e | ||
|
|
d2b38249ae |
19
.babelrc.js
19
.babelrc.js
@@ -1,19 +0,0 @@
|
|||||||
module.exports = function(api) {
|
|
||||||
return {
|
|
||||||
presets: [
|
|
||||||
[
|
|
||||||
"@babel/preset-env",
|
|
||||||
{
|
|
||||||
targets: {
|
|
||||||
chrome: 59,
|
|
||||||
edge: 13,
|
|
||||||
firefox: 50,
|
|
||||||
ie: 11
|
|
||||||
},
|
|
||||||
// for uglifyjs...
|
|
||||||
forceAllTransforms: api.env("production"),
|
|
||||||
},
|
|
||||||
],
|
|
||||||
],
|
|
||||||
};
|
|
||||||
};
|
|
||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,4 +2,3 @@
|
|||||||
/lib
|
/lib
|
||||||
mergely-*.tgz
|
mergely-*.tgz
|
||||||
package-lock.json
|
package-lock.json
|
||||||
*.log
|
|
||||||
|
|||||||
@@ -1,11 +1,5 @@
|
|||||||
# Changes
|
# Changes
|
||||||
|
|
||||||
## 4.0.8
|
|
||||||
* chore: updated webpack
|
|
||||||
|
|
||||||
## 4.0.7
|
|
||||||
* chore: updated documentation
|
|
||||||
|
|
||||||
## 4.0.6
|
## 4.0.6
|
||||||
|
|
||||||
* #89: fixes missing merge buttons
|
* #89: fixes missing merge buttons
|
||||||
|
|||||||
@@ -9,9 +9,6 @@ Mergely is a javascript component to diff/merge files interactively in a browser
|
|||||||
### Installation via webpack
|
### Installation via webpack
|
||||||
The recommended way to install mergely is to use npm and [webpack](https://webpack.js.org/) to install mergely and its dependencies. It is highly recommended that you start by cloning [mergely-webpack](https://github.com/wickedest/mergely-webpack). It has everything that you need to get started.
|
The recommended way to install mergely is to use npm and [webpack](https://webpack.js.org/) to install mergely and its dependencies. It is highly recommended that you start by cloning [mergely-webpack](https://github.com/wickedest/mergely-webpack). It has everything that you need to get started.
|
||||||
|
|
||||||
### Angular 6.1.1
|
|
||||||
You can also use mergely within angular. You can start by cloning [mergely-angular](https://github.com/wickedest/mergely-angular).
|
|
||||||
|
|
||||||
### Installation via .tgz
|
### Installation via .tgz
|
||||||
|
|
||||||
Unpack mergely.tgz into a folder, e.g. `./lib`, and then add the following to the `<head>` of your target html source file.
|
Unpack mergely.tgz into a folder, e.g. `./lib`, and then add the following to the `<head>` of your target html source file.
|
||||||
@@ -49,6 +46,9 @@ The following example can be used to set the `lhs` and `rhs` editors synchronous
|
|||||||
|
|
||||||
```js
|
```js
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
|
// initialize mergely
|
||||||
|
$('#mergely').mergely();
|
||||||
|
|
||||||
// set editor content
|
// set editor content
|
||||||
$('#mergely').mergely({
|
$('#mergely').mergely({
|
||||||
lhs: function(setValue) {
|
lhs: function(setValue) {
|
||||||
|
|||||||
@@ -1,21 +0,0 @@
|
|||||||
<!--
|
|
||||||
This example demonstrates the minimum amount of code required to use Mergely.
|
|
||||||
-->
|
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8" /><title>Mergely - Simple Example</title>
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="chrome=1, IE=edge">
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
|
|
||||||
<meta name="description" content="Merge and Diff your documents with diff online and share" />
|
|
||||||
<meta name="keywords" content="diff,merge,compare,jsdiff,comparison,difference,file,text,unix,patch,algorithm,saas,longest common subsequence" />
|
|
||||||
<meta name="author" content="Jamie Peabody" />
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div class="mergely-full-screen-8">
|
|
||||||
<div class="mergely-resizer">
|
|
||||||
<div id="mergely"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
require('codemirror/lib/codemirror.css');
|
|
||||||
require('../src/mergely.css');
|
|
||||||
|
|
||||||
$(document).ready(function () {
|
|
||||||
$('#mergely').mergely({
|
|
||||||
license: 'lgpl',
|
|
||||||
cmsettings: {
|
|
||||||
readOnly: false
|
|
||||||
},
|
|
||||||
_debug: '',
|
|
||||||
lhs: function(setValue) {
|
|
||||||
setValue('the quick red fox\njumped over the hairy dog');
|
|
||||||
},
|
|
||||||
rhs: function(setValue) {
|
|
||||||
setValue('the quick brown fox\njumped over the lazy dog');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
const path = require('path');
|
const path = require('path');
|
||||||
const CopyWebpackPlugin = require('copy-webpack-plugin');
|
const webpackCfg = require('./webpack.config');
|
||||||
|
const ExtractTextPlugin = require('extract-text-webpack-plugin');
|
||||||
|
|
||||||
module.exports = function(config) {
|
module.exports = function(config) {
|
||||||
config.set({
|
config.set({
|
||||||
@@ -39,11 +40,9 @@ module.exports = function(config) {
|
|||||||
webpack: {
|
webpack: {
|
||||||
entry: './src/mergely.js',
|
entry: './src/mergely.js',
|
||||||
module: {
|
module: {
|
||||||
rules: [{
|
loaders: [
|
||||||
test: /\.(js)$/,
|
{ test: /\.css$/, loader: ExtractTextPlugin.extract('css-loader') }
|
||||||
exclude: /node_modules/,
|
]
|
||||||
use: ['babel-loader']
|
|
||||||
}]
|
|
||||||
},
|
},
|
||||||
resolve: {
|
resolve: {
|
||||||
extensions: ['.js'],
|
extensions: ['.js'],
|
||||||
@@ -53,11 +52,7 @@ module.exports = function(config) {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
new CopyWebpackPlugin([{
|
new ExtractTextPlugin('mergely.css')
|
||||||
from: 'src/mergely.css',
|
|
||||||
to: 'mergely.css',
|
|
||||||
toType: 'file'
|
|
||||||
}])
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
webpackServer: {
|
webpackServer: {
|
||||||
|
|||||||
34
package.json
Normal file → Executable file
34
package.json
Normal file → Executable file
@@ -1,12 +1,17 @@
|
|||||||
{
|
{
|
||||||
"name": "mergely",
|
"name": "mergely",
|
||||||
"version": "4.0.8",
|
"version": "4.0.6",
|
||||||
"description": "A javascript UI for diff/merge",
|
"description": "A javascript UI for diff/merge",
|
||||||
"directories": {
|
"directories": {
|
||||||
"doc": "doc",
|
"doc": "doc",
|
||||||
"example": "examples",
|
"example": "examples",
|
||||||
"test": "test"
|
"test": "test"
|
||||||
},
|
},
|
||||||
|
"scripts": {
|
||||||
|
"build": "rm -rf lib && webpack",
|
||||||
|
"test": "karma start",
|
||||||
|
"test:chrome": "karma start --browsers Chrome --singleRun=false"
|
||||||
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git+https://github.com/wickedest/Mergely.git"
|
"url": "git+https://github.com/wickedest/Mergely.git"
|
||||||
@@ -15,8 +20,7 @@
|
|||||||
"files": [
|
"files": [
|
||||||
"lib",
|
"lib",
|
||||||
"examples",
|
"examples",
|
||||||
"README.md",
|
"README.md"
|
||||||
"LICENSE"
|
|
||||||
],
|
],
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"merge",
|
"merge",
|
||||||
@@ -34,20 +38,14 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/wickedest/Mergely#readme",
|
"homepage": "https://github.com/wickedest/Mergely#readme",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.1.6",
|
|
||||||
"@babel/preset-env": "^7.1.6",
|
|
||||||
"@webpack-cli/init": "^0.1.2",
|
|
||||||
"babel-loader": "^8.0.4",
|
|
||||||
"babel-plugin-syntax-dynamic-import": "^6.18.0",
|
|
||||||
"chai": "^4.1.2",
|
"chai": "^4.1.2",
|
||||||
"codemirror": "^5.32.0",
|
"codemirror": "^5.32.0",
|
||||||
"copy-webpack-plugin": "^4.6.0",
|
"css-loader": "^0.28.7",
|
||||||
"css-loader": "^0.28.11",
|
"extract-text-webpack-plugin": "^3.0.2",
|
||||||
"file-loader": "^1.1.5",
|
"file-loader": "^1.1.5",
|
||||||
"html-webpack-plugin": "^3.2.0",
|
|
||||||
"image-webpack-loader": "^3.4.2",
|
"image-webpack-loader": "^3.4.2",
|
||||||
"jquery": "^3.2.1",
|
"jquery": "^3.2.1",
|
||||||
"karma": "^3.1.1",
|
"karma": "^2.0.0",
|
||||||
"karma-chai": "^0.1.0",
|
"karma-chai": "^0.1.0",
|
||||||
"karma-chrome-launcher": "^2.2.0",
|
"karma-chrome-launcher": "^2.2.0",
|
||||||
"karma-coverage-istanbul-reporter": "^1.3.0",
|
"karma-coverage-istanbul-reporter": "^1.3.0",
|
||||||
@@ -55,16 +53,6 @@
|
|||||||
"karma-mocha-reporter": "^2.2.5",
|
"karma-mocha-reporter": "^2.2.5",
|
||||||
"karma-webpack": "^2.0.9",
|
"karma-webpack": "^2.0.9",
|
||||||
"mocha": "^4.0.1",
|
"mocha": "^4.0.1",
|
||||||
"style-loader": "^0.23.0",
|
"webpack": "^3.8.1"
|
||||||
"uglifyjs-webpack-plugin": "^2.0.1",
|
|
||||||
"webpack": "^4.20.2",
|
|
||||||
"webpack-cli": "^3.1.2",
|
|
||||||
"webpack-dev-server": "^3.1.9"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"build": "rm -rf lib && webpack --config ./webpack.prod.js",
|
|
||||||
"start": "webpack-dev-server -w --debug --progress --colors --config ./webpack.dev.js --content-base ./dist --inline --hot --host 0.0.0.0",
|
|
||||||
"test": "karma start",
|
|
||||||
"test:chrome": "karma start --browsers Chrome --singleRun=false"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
16
src/Timer.js
16
src/Timer.js
@@ -1,16 +0,0 @@
|
|||||||
class Timer {
|
|
||||||
static start() {
|
|
||||||
Timer.t0 = Date.now();
|
|
||||||
}
|
|
||||||
|
|
||||||
static stop() {
|
|
||||||
var t1 = Date.now();
|
|
||||||
var td = t1 - Timer.t0;
|
|
||||||
Timer.t0 = t1;
|
|
||||||
return td;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Timer.t0 = 0;
|
|
||||||
|
|
||||||
exports = module.exports = Timer;
|
|
||||||
@@ -1,12 +1,24 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
require('./mergely.css');
|
||||||
|
|
||||||
(function(jQuery, CodeMirror) {
|
(function(jQuery, CodeMirror) {
|
||||||
|
|
||||||
var Mgly = {};
|
var Mgly = {};
|
||||||
|
|
||||||
Mgly.ChangeExpression = new RegExp(/(^(?![><\-])*\d+(?:,\d+)?)([acd])(\d+(?:,\d+)?)/);
|
Mgly.Timer = function(){
|
||||||
|
var self = this;
|
||||||
|
self.start = function() { self.t0 = new Date().getTime(); };
|
||||||
|
self.stop = function() {
|
||||||
|
var t1 = new Date().getTime();
|
||||||
|
var d = t1 - self.t0;
|
||||||
|
self.t0 = t1;
|
||||||
|
return d;
|
||||||
|
};
|
||||||
|
self.start();
|
||||||
|
};
|
||||||
|
|
||||||
const Timer = require('./Timer');
|
Mgly.ChangeExpression = new RegExp(/(^(?![><\-])*\d+(?:,\d+)?)([acd])(\d+(?:,\d+)?)/);
|
||||||
|
|
||||||
Mgly.DiffParser = function(diff) {
|
Mgly.DiffParser = function(diff) {
|
||||||
var changes = [];
|
var changes = [];
|
||||||
@@ -739,7 +751,7 @@ jQuery.extend(Mgly.CodeMirrorDiffView.prototype, {
|
|||||||
}).append('<p><img width="36" height="36" alt="mergely" src="' + icon + '" style="float:left;padding-right:10px;" />This software is a Combined Work using Mergely and is covered by the ' + lic + ' license. For the full license, see <a target="_blank" href="http://www.mergely.com">http://www.mergely.com/license.</a></p>');
|
}).append('<p><img width="36" height="36" alt="mergely" src="' + icon + '" style="float:left;padding-right:10px;" />This software is a Combined Work using Mergely and is covered by the ' + lic + ' license. For the full license, see <a target="_blank" href="http://www.mergely.com">http://www.mergely.com/license.</a></p>');
|
||||||
jQuery('body').one('click', function () {
|
jQuery('body').one('click', function () {
|
||||||
jQuery('#mergely-splash').fadeOut(100, 'linear', function () {
|
jQuery('#mergely-splash').fadeOut(100, 'linear', function () {
|
||||||
jQuery('#mergely-splash').remove();
|
this.remove();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -938,13 +950,13 @@ jQuery.extend(Mgly.CodeMirrorDiffView.prototype, {
|
|||||||
else this.trace('scroll', 'not scrolling other side');
|
else this.trace('scroll', 'not scrolling other side');
|
||||||
|
|
||||||
if (this.settings.autoupdate) {
|
if (this.settings.autoupdate) {
|
||||||
Timer.start();
|
var timer = new Mgly.Timer();
|
||||||
this._calculate_offsets(editor_name1, editor_name2, this.changes);
|
this._calculate_offsets(editor_name1, editor_name2, this.changes);
|
||||||
this.trace('change', 'offsets time', Timer.stop());
|
this.trace('change', 'offsets time', timer.stop());
|
||||||
this._markup_changes(editor_name1, editor_name2, this.changes);
|
this._markup_changes(editor_name1, editor_name2, this.changes);
|
||||||
this.trace('change', 'markup time', Timer.stop());
|
this.trace('change', 'markup time', timer.stop());
|
||||||
this._draw_diff(editor_name1, editor_name2, this.changes);
|
this._draw_diff(editor_name1, editor_name2, this.changes);
|
||||||
this.trace('change', 'draw time', Timer.stop());
|
this.trace('change', 'draw time', timer.stop());
|
||||||
}
|
}
|
||||||
this.trace('scroll', 'scrolled');
|
this.trace('scroll', 'scrolled');
|
||||||
}
|
}
|
||||||
@@ -954,9 +966,9 @@ jQuery.extend(Mgly.CodeMirrorDiffView.prototype, {
|
|||||||
var self = this;
|
var self = this;
|
||||||
if (this.changed_timeout != null) clearTimeout(this.changed_timeout);
|
if (this.changed_timeout != null) clearTimeout(this.changed_timeout);
|
||||||
this.changed_timeout = setTimeout(function(){
|
this.changed_timeout = setTimeout(function(){
|
||||||
Timer.start();
|
var timer = new Mgly.Timer();
|
||||||
self._changed(editor_name1, editor_name2);
|
self._changed(editor_name1, editor_name2);
|
||||||
self.trace('change', 'total time', Timer.stop());
|
self.trace('change', 'total time', timer.stop());
|
||||||
}, this.settings.change_timeout);
|
}, this.settings.change_timeout);
|
||||||
},
|
},
|
||||||
_changed: function(editor_name1, editor_name2) {
|
_changed: function(editor_name1, editor_name2) {
|
||||||
@@ -967,7 +979,7 @@ jQuery.extend(Mgly.CodeMirrorDiffView.prototype, {
|
|||||||
var self = this, name, editor, fns, timer, i, change, l;
|
var self = this, name, editor, fns, timer, i, change, l;
|
||||||
|
|
||||||
var clear_changes = function() {
|
var clear_changes = function() {
|
||||||
Timer.start();
|
timer = new Mgly.Timer();
|
||||||
for (i = 0, l = editor.lineCount(); i < l; ++i) {
|
for (i = 0, l = editor.lineCount(); i < l; ++i) {
|
||||||
editor.removeLineClass(i, 'background');
|
editor.removeLineClass(i, 'background');
|
||||||
}
|
}
|
||||||
@@ -981,7 +993,7 @@ jQuery.extend(Mgly.CodeMirrorDiffView.prototype, {
|
|||||||
change.clear();
|
change.clear();
|
||||||
}
|
}
|
||||||
editor.clearGutter('merge');
|
editor.clearGutter('merge');
|
||||||
self.trace('change', 'clear time', Timer.stop());
|
self.trace('change', 'clear time', timer.stop());
|
||||||
};
|
};
|
||||||
|
|
||||||
for (name in this.editor) {
|
for (name in this.editor) {
|
||||||
@@ -1017,23 +1029,23 @@ jQuery.extend(Mgly.CodeMirrorDiffView.prototype, {
|
|||||||
_diff: function(editor_name1, editor_name2) {
|
_diff: function(editor_name1, editor_name2) {
|
||||||
var lhs = this.editor[editor_name1].getValue();
|
var lhs = this.editor[editor_name1].getValue();
|
||||||
var rhs = this.editor[editor_name2].getValue();
|
var rhs = this.editor[editor_name2].getValue();
|
||||||
Timer.start();
|
var timer = new Mgly.Timer();
|
||||||
var d = new Mgly.diff(lhs, rhs, this.settings);
|
var d = new Mgly.diff(lhs, rhs, this.settings);
|
||||||
this.trace('change', 'diff time', Timer.stop());
|
this.trace('change', 'diff time', timer.stop());
|
||||||
this.changes = Mgly.DiffParser(d.normal_form());
|
this.changes = Mgly.DiffParser(d.normal_form());
|
||||||
this.trace('change', 'parse time', Timer.stop());
|
this.trace('change', 'parse time', timer.stop());
|
||||||
if (this._current_diff === undefined && this.changes.length) {
|
if (this._current_diff === undefined && this.changes.length) {
|
||||||
// go to first difference on start-up
|
// go to first difference on start-up
|
||||||
this._current_diff = 0;
|
this._current_diff = 0;
|
||||||
this._scroll_to_change(this.changes[0]);
|
this._scroll_to_change(this.changes[0]);
|
||||||
}
|
}
|
||||||
this.trace('change', 'scroll_to_change time', Timer.stop());
|
this.trace('change', 'scroll_to_change time', timer.stop());
|
||||||
this._calculate_offsets(editor_name1, editor_name2, this.changes);
|
this._calculate_offsets(editor_name1, editor_name2, this.changes);
|
||||||
this.trace('change', 'offsets time', Timer.stop());
|
this.trace('change', 'offsets time', timer.stop());
|
||||||
this._markup_changes(editor_name1, editor_name2, this.changes);
|
this._markup_changes(editor_name1, editor_name2, this.changes);
|
||||||
this.trace('change', 'markup time', Timer.stop());
|
this.trace('change', 'markup time', timer.stop());
|
||||||
this._draw_diff(editor_name1, editor_name2, this.changes);
|
this._draw_diff(editor_name1, editor_name2, this.changes);
|
||||||
this.trace('change', 'draw time', Timer.stop());
|
this.trace('change', 'draw time', timer.stop());
|
||||||
},
|
},
|
||||||
_parse_diff: function (editor_name1, editor_name2, diff) {
|
_parse_diff: function (editor_name1, editor_name2, diff) {
|
||||||
this.trace('diff', 'diff results:\n', diff);
|
this.trace('diff', 'diff results:\n', diff);
|
||||||
@@ -1223,7 +1235,7 @@ jQuery.extend(Mgly.CodeMirrorDiffView.prototype, {
|
|||||||
var lhsvp = this._get_viewport_side(editor_name1);
|
var lhsvp = this._get_viewport_side(editor_name1);
|
||||||
var rhsvp = this._get_viewport_side(editor_name2);
|
var rhsvp = this._get_viewport_side(editor_name2);
|
||||||
|
|
||||||
Timer.start();
|
var timer = new Mgly.Timer();
|
||||||
led.operation(function() {
|
led.operation(function() {
|
||||||
for (var i = 0; i < changes.length; ++i) {
|
for (var i = 0; i < changes.length; ++i) {
|
||||||
var change = changes[i];
|
var change = changes[i];
|
||||||
@@ -1276,7 +1288,7 @@ jQuery.extend(Mgly.CodeMirrorDiffView.prototype, {
|
|||||||
}
|
}
|
||||||
}.bind(this));
|
}.bind(this));
|
||||||
|
|
||||||
this.trace('change', 'markup lhs-editor time', Timer.stop());
|
this.trace('change', 'markup lhs-editor time', timer.stop());
|
||||||
red.operation(function() {
|
red.operation(function() {
|
||||||
for (var i = 0; i < changes.length; ++i) {
|
for (var i = 0; i < changes.length; ++i) {
|
||||||
var change = changes[i];
|
var change = changes[i];
|
||||||
@@ -1328,7 +1340,7 @@ jQuery.extend(Mgly.CodeMirrorDiffView.prototype, {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}.bind(this));
|
}.bind(this));
|
||||||
this.trace('change', 'markup rhs-editor time', Timer.stop());
|
this.trace('change', 'markup rhs-editor time', timer.stop());
|
||||||
|
|
||||||
// mark text deleted, LCS changes
|
// mark text deleted, LCS changes
|
||||||
var marktext = [], i, j, k, p;
|
var marktext = [], i, j, k, p;
|
||||||
@@ -1388,7 +1400,7 @@ jQuery.extend(Mgly.CodeMirrorDiffView.prototype, {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.trace('change', 'LCS marktext time', Timer.stop());
|
this.trace('change', 'LCS marktext time', timer.stop());
|
||||||
|
|
||||||
// mark changes outside closure
|
// mark changes outside closure
|
||||||
led.operation(function() {
|
led.operation(function() {
|
||||||
@@ -1408,7 +1420,7 @@ jQuery.extend(Mgly.CodeMirrorDiffView.prototype, {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
this.trace('change', 'LCS markup time', Timer.stop());
|
this.trace('change', 'LCS markup time', timer.stop());
|
||||||
|
|
||||||
// merge buttons
|
// merge buttons
|
||||||
var ed = {lhs:led, rhs:red};
|
var ed = {lhs:led, rhs:red};
|
||||||
@@ -1472,7 +1484,7 @@ jQuery.extend(Mgly.CodeMirrorDiffView.prototype, {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.trace('change', 'markup buttons time', Timer.stop());
|
this.trace('change', 'markup buttons time', timer.stop());
|
||||||
},
|
},
|
||||||
_merge_change : function(change, side, oside) {
|
_merge_change : function(change, side, oside) {
|
||||||
if (!change) return;
|
if (!change) return;
|
||||||
|
|||||||
38
webpack.config.js
Normal file
38
webpack.config.js
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
const webpack = require('webpack');
|
||||||
|
const path = require('path');
|
||||||
|
const ExtractTextPlugin = require('extract-text-webpack-plugin');
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
entry: {
|
||||||
|
mergely: './src/mergely.js',
|
||||||
|
// 'mergely.min': './src/mergely.js'
|
||||||
|
},
|
||||||
|
output: {
|
||||||
|
path: path.join(__dirname, 'lib'),
|
||||||
|
filename: './[name].js',
|
||||||
|
library: 'mergely',
|
||||||
|
libraryTarget: 'umd',
|
||||||
|
umdNamedDefine: true
|
||||||
|
},
|
||||||
|
module: {
|
||||||
|
loaders: [
|
||||||
|
{ test: /\.css$/, loader: ExtractTextPlugin.extract('css-loader') }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
resolve: {
|
||||||
|
extensions: ['.js']
|
||||||
|
},
|
||||||
|
externals: {
|
||||||
|
jquery: 'jQuery',
|
||||||
|
CodeMirror: 'CodeMirror'
|
||||||
|
},
|
||||||
|
plugins: [
|
||||||
|
// new webpack.optimize.UglifyJsPlugin({
|
||||||
|
// sourceMap: true,
|
||||||
|
// include: /\.js$/,
|
||||||
|
// // include: /\.min\.js$/,
|
||||||
|
// exclude: /node_modules/
|
||||||
|
// }),
|
||||||
|
new ExtractTextPlugin('mergely.css')
|
||||||
|
]
|
||||||
|
};
|
||||||
@@ -1,80 +0,0 @@
|
|||||||
const webpack = require('webpack')
|
|
||||||
const path = require('path')
|
|
||||||
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
mode: 'development',
|
|
||||||
|
|
||||||
module: {
|
|
||||||
rules: [{
|
|
||||||
include: [
|
|
||||||
path.resolve(__dirname, 'src'),
|
|
||||||
path.resolve(__dirname, 'examples')
|
|
||||||
],
|
|
||||||
test: /\.js$/
|
|
||||||
}, {
|
|
||||||
test: /\.(js)$/,
|
|
||||||
exclude: /node_modules/,
|
|
||||||
use: ['babel-loader']
|
|
||||||
}, {
|
|
||||||
test: /\.css$/,
|
|
||||||
use: [{
|
|
||||||
loader: 'style-loader',
|
|
||||||
options: {
|
|
||||||
sourceMap: true
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
loader: 'css-loader'
|
|
||||||
}]
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
|
|
||||||
resolve: {
|
|
||||||
extensions: ['.js'],
|
|
||||||
alias: {
|
|
||||||
'CodeMirror': path.join(__dirname, 'node_modules', 'codemirror'),
|
|
||||||
'jQuery': path.join(__dirname, 'node_modules', 'jquery')
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
plugins: [
|
|
||||||
new HtmlWebpackPlugin({
|
|
||||||
template: 'examples/app.html',
|
|
||||||
filename: 'mergely.html'
|
|
||||||
}),
|
|
||||||
new webpack.ProvidePlugin({
|
|
||||||
$: 'jquery',
|
|
||||||
jQuery: 'jquery'
|
|
||||||
}),
|
|
||||||
new webpack.ProvidePlugin({
|
|
||||||
CodeMirror: 'codemirror'
|
|
||||||
})
|
|
||||||
],
|
|
||||||
|
|
||||||
entry: {
|
|
||||||
app: [
|
|
||||||
'./examples/app',
|
|
||||||
'./src/mergely',
|
|
||||||
]
|
|
||||||
},
|
|
||||||
|
|
||||||
output: {
|
|
||||||
filename: 'mergely.js',
|
|
||||||
},
|
|
||||||
|
|
||||||
optimization: {
|
|
||||||
splitChunks: {
|
|
||||||
cacheGroups: {
|
|
||||||
vendors: {
|
|
||||||
priority: -10,
|
|
||||||
test: /[\\/]node_modules[\\/]/
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
chunks: 'async',
|
|
||||||
minChunks: 1,
|
|
||||||
minSize: 30000,
|
|
||||||
name: true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
const webpack = require('webpack');
|
|
||||||
const path = require('path');
|
|
||||||
const CopyWebpackPlugin = require('copy-webpack-plugin');
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
mode: 'production',
|
|
||||||
entry: {
|
|
||||||
mergely: './src/mergely.js',
|
|
||||||
},
|
|
||||||
output: {
|
|
||||||
path: path.join(__dirname, 'lib'),
|
|
||||||
filename: './[name].js',
|
|
||||||
library: 'mergely',
|
|
||||||
libraryTarget: 'umd',
|
|
||||||
umdNamedDefine: true
|
|
||||||
},
|
|
||||||
module: {
|
|
||||||
rules: [{
|
|
||||||
test: /\.(js)$/,
|
|
||||||
exclude: /node_modules/,
|
|
||||||
use: ['babel-loader']
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
resolve: {
|
|
||||||
extensions: ['.js']
|
|
||||||
},
|
|
||||||
externals: {
|
|
||||||
jquery: 'jQuery',
|
|
||||||
CodeMirror: 'CodeMirror'
|
|
||||||
},
|
|
||||||
plugins: [
|
|
||||||
new CopyWebpackPlugin([{
|
|
||||||
from: 'src/mergely.css',
|
|
||||||
to: 'mergely.css',
|
|
||||||
toType: 'file'
|
|
||||||
}])
|
|
||||||
]
|
|
||||||
};
|
|
||||||
Reference in New Issue
Block a user