mirror of
https://github.com/wickedest/Mergely.git
synced 2026-05-20 08:47:21 +08:00
v5.0 (#174)
* feat: v5 BREAKING CHANGE: Mergely is no longer a jQuery plugin. BREAKING CHANGE: Removed `options.autoresize` BREAKING CHANGE: Removed `options.editor_width` BREAKING CHANGE: Removed `options.editor_height` BREAKING CHANGE: Removed `options.fadein` BREAKING CHANGE: Removed `options.fgcolor` BREAKING CHANGE: Removed `options.resize` BREAKING CHANGE: Removed `options.width` BREAKING CHANGE: Removed `options.height` BREAKING CHANGE: Removed `options.loaded` callback BREAKING CHANGE: Removed `options.resized` callback BREAKING CHANGE: Removed styles `.mergely-resizer`, `.mergely-full-screen-0`, and `.mergely-full-screen-8` BREAKING CHANGE: Changed default for `options.change_timeout` changed from `150` to `50`. BREAKING CHANGE: No longer automatically scrolls to first change. feat: CodeMirror is now an explicit dependency. feat: No longer necessary to separately require codemirror/addon/search/searchcursor feat: No longer necessary to separately require codemirror/addon/selection/mark-selection feat: `mergely.js` is now unminimized, and added new minimized version `mergely.min.js` feat: Gutter click now scrolls to any line feat: Mergely now emits `resize` event on resize feat: The UI is now non-blocking as diff now runs in background feat: Added support to provide `options.lhs` and `options.rhs` as strings feat: #16 added titles to editor.mergely.com fix: #165 block of changes at end of file are now distinguishable fix: #140 fixed performance issue with large files fix: Fixed issue where canvas markup was not rendered when `viewport` enabled fix: Fixed timing issue where swap sides may not work as expected. fix: Fixed issue where unmarkup did not emit an updated event. fix: Fixed documentation issue where `merge` incorrectly stated: from the specified `side` to the opposite side. fix: Fixed performance issue scrolling fix: Fixed issue where initial render scrolled to first change, showing it at the bottom (as opposed to middle as expected) fix: Fixed issue where line-diffs failed to diff non-alphanumeric characters * chore: tweaked no-start/end styles * feat: dark mode * chore: updated examples * chore(ci): updated webpack * chore(ci): alpha, beta, next branches * chore(ci): test * chore(ci): package-lock.json * chore(ci): ignore alpha, beta, next on branch * fix: fixes firefox scroll-linked effect issue * fix: fixes firefox scroll-linked effect issue * chore: fix css * chore: debug
This commit is contained in:
106
karma.conf.js
106
karma.conf.js
@@ -1,45 +1,107 @@
|
||||
const os = require('os');
|
||||
const path = require('path');
|
||||
const CopyWebpackPlugin = require('copy-webpack-plugin');
|
||||
const webpack = require('webpack');
|
||||
const webpackConfig = require('./webpack.dev.js');
|
||||
|
||||
const ENTROPY_SIZE = 1000000;
|
||||
const outputPath = `${path.join(os.tmpdir(), "_karma_webpack_")}${Math.floor(Math.random() * ENTROPY_SIZE)}`;
|
||||
|
||||
module.exports = function(config) {
|
||||
config.set({
|
||||
basePath: './',
|
||||
restartOnFileChange: true,
|
||||
|
||||
browsers: [
|
||||
'ChromeHeadless'
|
||||
],
|
||||
browsers: [ 'MyHeadlessChrome' ],
|
||||
|
||||
customLaunchers: {
|
||||
MyHeadlessChrome: {
|
||||
base: 'ChromeHeadless',
|
||||
flags: [ '--no-sandbox' ]
|
||||
}
|
||||
},
|
||||
|
||||
frameworks: [
|
||||
'mocha', 'chai'
|
||||
'webpack',
|
||||
'mocha',
|
||||
'chai'
|
||||
],
|
||||
|
||||
plugins: [
|
||||
'karma-webpack',
|
||||
'karma-mocha',
|
||||
'karma-chai',
|
||||
'karma-chrome-launcher',
|
||||
'karma-sourcemap-loader',
|
||||
'karma-mocha-reporter',
|
||||
'karma-coverage-istanbul-reporter',
|
||||
// 'karma-coverage-istanbul-instrumenter'
|
||||
],
|
||||
|
||||
files: [
|
||||
'node_modules/codemirror/lib/codemirror.css',
|
||||
'src/mergely.css',
|
||||
'tests/**/*.spec.js'
|
||||
'src/*.js',
|
||||
'test/**/*.spec.js'
|
||||
],
|
||||
|
||||
preprocessors: {
|
||||
'node_modules/jquery/dist/jquery.js': ['webpack'],
|
||||
'node_modules/codemirror/lib/codemirror.js': ['webpack'],
|
||||
'tests/**/*.spec.js': ['webpack'],
|
||||
'src/**/*.js': ['webpack']
|
||||
'node_modules/codemirror/lib/codemirror.js': [ 'webpack' ],
|
||||
'test/*.spec.js': [ 'webpack' ],
|
||||
// 'src/*.js': [ 'webpack', 'sourcemap', 'karma-coverage-istanbul-instrumenter' ]
|
||||
'src/*.js': [ 'webpack', 'sourcemap' ]
|
||||
},
|
||||
|
||||
reporters: ['mocha'],
|
||||
mochaReporter: {
|
||||
showDiff: true
|
||||
reporters: [ 'mocha', 'coverage-istanbul' ],
|
||||
|
||||
coverageIstanbulReporter: {
|
||||
reports: [ 'html', 'lcov', 'text-summary' ],
|
||||
dir: path.join(__dirname, 'coverage'),
|
||||
fixWebpackSourcePaths: false,
|
||||
esModules: false,
|
||||
// enforce percentage thresholds
|
||||
// anything under these percentages will cause karma to fail
|
||||
// with an exit code of 1 if not running in watch mode
|
||||
thresholds: {
|
||||
// set to `true` to not fail the test command when thresholds are not met
|
||||
emitWarning: true,
|
||||
global: { // thresholds for all files
|
||||
statements: 94.09,
|
||||
branches: 89.92,
|
||||
functions: 92.67,
|
||||
lines: 94.33
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
colors: true,
|
||||
|
||||
logLevel: config.LOG_DEBUG,
|
||||
|
||||
singleRun: true,
|
||||
client: {
|
||||
captureConsole: true,
|
||||
mocha: {}
|
||||
},
|
||||
webpack: webpackConfig,
|
||||
webpackServer: {
|
||||
noInfo: true
|
||||
}
|
||||
|
||||
webpack: tweakWebpack(webpackConfig),
|
||||
});
|
||||
}
|
||||
|
||||
function tweakWebpack(webpackConfig) {
|
||||
const config = {
|
||||
...webpackConfig,
|
||||
output: {
|
||||
// https://github.com/scottohara/tvmanager/issues/99
|
||||
path: outputPath
|
||||
},
|
||||
externals: {
|
||||
CodeMirror: 'CodeMirror'
|
||||
}
|
||||
};
|
||||
if (!config.plugins) {
|
||||
config.plugins = [];
|
||||
}
|
||||
config.plugins.push(
|
||||
new webpack.ProvidePlugin({
|
||||
CodeMirror: 'codemirror'
|
||||
})
|
||||
);
|
||||
config.devtool = 'inline-source-map';
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user