mirror of
https://github.com/yjs/yjs.git
synced 2025-12-16 03:37:50 +01:00
restructuring the project
This commit is contained in:
160
rollup.config.js
160
rollup.config.js
@@ -1,23 +1,99 @@
|
||||
import nodeResolve from 'rollup-plugin-node-resolve'
|
||||
import commonjs from 'rollup-plugin-commonjs'
|
||||
import babel from 'rollup-plugin-babel'
|
||||
import uglify from 'rollup-plugin-uglify-es'
|
||||
import { terser } from 'rollup-plugin-terser'
|
||||
|
||||
const customModules = new Set([
|
||||
'y-websocket',
|
||||
'y-codemirror',
|
||||
'y-ace',
|
||||
'y-textarea',
|
||||
'y-quill',
|
||||
'y-dom',
|
||||
'y-prosemirror'
|
||||
])
|
||||
const customLibModules = new Set([
|
||||
// 'funlib',
|
||||
'y-protocols'
|
||||
])
|
||||
const debugResolve = {
|
||||
resolveId (importee) {
|
||||
if (importee === 'yjs') {
|
||||
return `${process.cwd()}/src/index.js`
|
||||
}
|
||||
if (customModules.has(importee.split('/')[0])) {
|
||||
return `${process.cwd()}/../${importee}/src/${importee}.js`
|
||||
}
|
||||
if (customLibModules.has(importee.split('/')[0])) {
|
||||
return `${process.cwd()}/../${importee}`
|
||||
}
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
// set this to [] to disable obfuscation
|
||||
const minificationPlugins = process.env.PRODUCTION ? [babel(), uglify()] : []
|
||||
const minificationPlugins = process.env.PRODUCTION ? [terser({
|
||||
module: true,
|
||||
compress: {
|
||||
hoist_vars: true,
|
||||
module: true,
|
||||
passes: 5,
|
||||
pure_getters: true,
|
||||
unsafe_comps: true,
|
||||
unsafe_undefined: true
|
||||
},
|
||||
mangle: {
|
||||
toplevel: true
|
||||
// properties: true
|
||||
}
|
||||
})] : []
|
||||
|
||||
export default [{
|
||||
input: './index.js',
|
||||
output: [{
|
||||
input: './src/index.js',
|
||||
output: {
|
||||
name: 'Y',
|
||||
file: 'build/yjs.js',
|
||||
file: 'dist/yjs.js',
|
||||
format: 'cjs',
|
||||
sourcemap: true
|
||||
}]
|
||||
sourcemap: true,
|
||||
paths: path => {
|
||||
if (/^funlib\//.test(path)) {
|
||||
return `funlib/dist${path.slice(6)}`
|
||||
}
|
||||
return path
|
||||
}
|
||||
},
|
||||
plugins: minificationPlugins
|
||||
}, {
|
||||
input: './src/index.js',
|
||||
output: {
|
||||
name: 'Y',
|
||||
file: 'dist/yjs.mjs',
|
||||
format: 'esm',
|
||||
sourcemap: true
|
||||
},
|
||||
plugins: minificationPlugins
|
||||
}, {
|
||||
input: './tests/index.js',
|
||||
output: {
|
||||
name: 'test',
|
||||
file: 'dist/tests.js',
|
||||
format: 'iife',
|
||||
sourcemap: true
|
||||
},
|
||||
plugins: [
|
||||
debugResolve,
|
||||
nodeResolve({
|
||||
sourcemap: true,
|
||||
module: true,
|
||||
browser: true
|
||||
}),
|
||||
commonjs()
|
||||
]
|
||||
},
|
||||
|
||||
/* {
|
||||
input: 'tests/index.js',
|
||||
output: {
|
||||
file: 'build/y.test.js',
|
||||
file: 'dist/y.test.js',
|
||||
format: 'iife',
|
||||
name: 'ytests',
|
||||
sourcemap: true
|
||||
@@ -29,67 +105,21 @@ export default [{
|
||||
}),
|
||||
commonjs()
|
||||
]
|
||||
}, {
|
||||
input: './examples/codemirror.js',
|
||||
}, */{
|
||||
input: ['./examples/codemirror.js', './examples/textarea.js', './examples/quill.js', './examples/dom.js', './examples/prosemirror.js'], // fs.readdirSync('./examples').filter(file => /(?<!\.(test|config))\.js$/.test(file)).map(file => './examples/' + file),
|
||||
output: {
|
||||
name: 'codemirror',
|
||||
file: 'examples/build/codemirror.js',
|
||||
format: 'iife',
|
||||
dir: 'examples/build',
|
||||
format: 'esm',
|
||||
sourcemap: true
|
||||
},
|
||||
plugins: [
|
||||
debugResolve,
|
||||
nodeResolve({
|
||||
sourcemap: true,
|
||||
module: true
|
||||
module: true,
|
||||
browser: true
|
||||
}),
|
||||
commonjs()
|
||||
].concat(minificationPlugins)
|
||||
}, {
|
||||
input: './examples/prosemirror.js',
|
||||
output: {
|
||||
name: 'prosemirror',
|
||||
file: 'examples/build/prosemirror.js',
|
||||
format: 'iife',
|
||||
sourcemap: true
|
||||
},
|
||||
plugins: [
|
||||
nodeResolve({
|
||||
sourcemap: true,
|
||||
module: true
|
||||
}),
|
||||
commonjs()
|
||||
].concat(minificationPlugins)
|
||||
}, {
|
||||
input: './examples/dom.js',
|
||||
output: {
|
||||
name: 'dom',
|
||||
file: 'examples/build/dom.js',
|
||||
format: 'iife',
|
||||
sourcemap: true
|
||||
},
|
||||
plugins: minificationPlugins
|
||||
}, {
|
||||
input: './examples/textarea.js',
|
||||
output: {
|
||||
name: 'textarea',
|
||||
file: 'examples/build/textarea.js',
|
||||
format: 'iife',
|
||||
sourcemap: true
|
||||
},
|
||||
plugins: minificationPlugins
|
||||
}, {
|
||||
input: './examples/quill.js',
|
||||
output: {
|
||||
name: 'textarea',
|
||||
file: 'examples/build/quill.js',
|
||||
format: 'iife',
|
||||
sourcemap: true
|
||||
},
|
||||
plugins: [
|
||||
nodeResolve({
|
||||
sourcemap: true,
|
||||
module: true
|
||||
}),
|
||||
commonjs()
|
||||
].concat(minificationPlugins)
|
||||
commonjs(),
|
||||
...minificationPlugins
|
||||
]
|
||||
}]
|
||||
|
||||
Reference in New Issue
Block a user