You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							178 lines
						
					
					
						
							5.8 KiB
						
					
					
				
			
		
		
	
	
							178 lines
						
					
					
						
							5.8 KiB
						
					
					
				/* | 
						|
* Licensed to the Apache Software Foundation (ASF) under one | 
						|
* or more contributor license agreements.  See the NOTICE file | 
						|
* distributed with this work for additional information | 
						|
* regarding copyright ownership.  The ASF licenses this file | 
						|
* to you under the Apache License, Version 2.0 (the | 
						|
* "License"); you may not use this file except in compliance | 
						|
* with the License.  You may obtain a copy of the License at | 
						|
* | 
						|
*   http://www.apache.org/licenses/LICENSE-2.0 | 
						|
* | 
						|
* Unless required by applicable law or agreed to in writing, | 
						|
* software distributed under the License is distributed on an | 
						|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | 
						|
* KIND, either express or implied.  See the License for the | 
						|
* specific language governing permissions and limitations | 
						|
* under the License. | 
						|
*/ | 
						|
 | 
						|
const nodeResolvePlugin = require('rollup-plugin-node-resolve'); | 
						|
const uglifyPlugin = require('rollup-plugin-uglify'); | 
						|
const ecRemoveDevPlugin = require('./rollup-plugin-ec-remove-dev'); | 
						|
const ecLangPlugin = require('./rollup-plugin-ec-lang'); | 
						|
const {resolve} = require('path'); | 
						|
const preamble = require('./preamble'); | 
						|
 | 
						|
function getPathBasedOnECharts(path) { | 
						|
    return resolve(__dirname, '../', path); | 
						|
} | 
						|
 | 
						|
function getPlugins({min, lang, sourcemap, removeDev, addBundleVersion}) { | 
						|
    let plugins = []; | 
						|
 | 
						|
    removeDev && plugins.push( | 
						|
        ecRemoveDevPlugin({sourcemap}) | 
						|
    ); | 
						|
 | 
						|
    lang && plugins.push( | 
						|
        ecLangPlugin({lang}) | 
						|
    ); | 
						|
 | 
						|
    plugins.push( | 
						|
        nodeResolvePlugin() | 
						|
    ); | 
						|
 | 
						|
    addBundleVersion && plugins.push({ | 
						|
        outro: function () { | 
						|
            return 'exports.bundleVersion = \'' + (+new Date()) + '\';'; | 
						|
        } | 
						|
    }); | 
						|
 | 
						|
    min && plugins.push(uglifyPlugin({ | 
						|
        compress: { | 
						|
            // Eliminate __DEV__ code. | 
						|
            // Currently, in uglify: | 
						|
            // `var vx; if(vx) {...}` can not be removed. | 
						|
            // `if (__DEV__) {...}` can be removed if `__DEV__` is defined as `false` in `global_defs`. | 
						|
            // 'global_defs': { | 
						|
            //     __DEV__: false | 
						|
            // }, | 
						|
            'dead_code': true | 
						|
        }, | 
						|
        output: { | 
						|
            preamble: preamble.js | 
						|
        } | 
						|
    })); | 
						|
 | 
						|
    return plugins; | 
						|
} | 
						|
 | 
						|
/** | 
						|
 * @param {Object} [opt] | 
						|
 * @param {string} [opt.type=''] '' or 'simple' or 'common' | 
						|
 * @param {boolean} [opt.min=false] | 
						|
 * @param {string} [opt.lang=undefined] null/undefined/'' or 'en' or 'fi' or a file path. | 
						|
 * @param {string} [opt.input=undefined] If set, `opt.output` is required too, and `opt.type` is ignored. | 
						|
 * @param {string} [opt.output=undefined] If set, `opt.input` is required too, and `opt.type` is ignored. | 
						|
 * @param {boolean} [opt.sourcemap] If set, `opt.input` is required too, and `opt.type` is ignored. | 
						|
 * @param {boolean} [opt.removeDev] | 
						|
 * @param {string} [opt.format='umd'] If set, `opt.input` is required too, and `opt.type` is ignored. | 
						|
 * @param {boolean} [opt.addBundleVersion=false] Only for debug in watch, prompt that the two build is different. | 
						|
 */ | 
						|
exports.createECharts = function (opt = {}) { | 
						|
    let min = opt.min; | 
						|
    let srcType = opt.type ? '.' + opt.type : '.all'; | 
						|
    let postfixType = opt.type ? '.' + opt.type : ''; | 
						|
    let postfixMin = min ? '.min' : ''; | 
						|
    let postfixLang = opt.lang ? '-' + opt.lang.toLowerCase() : ''; | 
						|
    let input = opt.input; | 
						|
    let output = opt.output; | 
						|
    let sourcemap = opt.sourcemap; | 
						|
    let format = opt.format || 'umd'; | 
						|
 | 
						|
    if (input != null || output != null) { | 
						|
        // Based on process.cwd(); | 
						|
        input = resolve(input); | 
						|
        output = resolve(output); | 
						|
    } | 
						|
    else { | 
						|
        input = getPathBasedOnECharts(`./echarts${srcType}.js`); | 
						|
        output = getPathBasedOnECharts(`dist/echarts${postfixLang}${postfixType}${postfixMin}.js`); | 
						|
    } | 
						|
 | 
						|
    return { | 
						|
        plugins: getPlugins(opt), | 
						|
        input: input, | 
						|
        legacy: true, // Support IE8- | 
						|
        output: { | 
						|
            name: 'echarts', | 
						|
            format: format, | 
						|
            sourcemap: sourcemap, | 
						|
            legacy: true, // Must be declared both in inputOptions and outputOptions. | 
						|
            file: output | 
						|
        }, | 
						|
        watch: { | 
						|
            include: [ | 
						|
                getPathBasedOnECharts('./src/**'), | 
						|
                getPathBasedOnECharts('./echarts*.js'), | 
						|
                getPathBasedOnECharts('../zrender/src/**') | 
						|
            ] | 
						|
        } | 
						|
    }; | 
						|
}; | 
						|
 | 
						|
/** | 
						|
 * @param {boolean} [min=false] | 
						|
 */ | 
						|
exports.createBMap = function (min) { | 
						|
    let postfix = min ? '.min' : ''; | 
						|
 | 
						|
    return { | 
						|
        plugins: getPlugins({min}), | 
						|
        input: getPathBasedOnECharts(`./extension-src/bmap/bmap.js`), | 
						|
        legacy: true, // Support IE8- | 
						|
        external: ['echarts'], | 
						|
        output: { | 
						|
            name: 'bmap', | 
						|
            format: 'umd', | 
						|
            sourcemap: !min, | 
						|
            legacy: true, // Must be declared both in inputOptions and outputOptions. | 
						|
            globals: { | 
						|
                // For UMD `global.echarts` | 
						|
                echarts: 'echarts' | 
						|
            }, | 
						|
            file: getPathBasedOnECharts(`dist/extension/bmap${postfix}.js`) | 
						|
        }, | 
						|
        watch: { | 
						|
            include: [getPathBasedOnECharts('./extension-src/bmap/**')] | 
						|
        } | 
						|
    }; | 
						|
}; | 
						|
 | 
						|
/** | 
						|
 * @param {boolean} [min=false] | 
						|
 */ | 
						|
exports.createDataTool = function (min) { | 
						|
    let postfix = min ? '.min' : ''; | 
						|
    return { | 
						|
        plugins: getPlugins({min}), | 
						|
        input: getPathBasedOnECharts(`./extension-src/dataTool/index.js`), | 
						|
        legacy: true, // Support IE8- | 
						|
        external: ['echarts'], | 
						|
        output: { | 
						|
            name: 'dataTool', | 
						|
            format: 'umd', | 
						|
            sourcemap: !min, | 
						|
            legacy: true, // Must be declared both in inputOptions and outputOptions. | 
						|
            globals: { | 
						|
                // For UMD `global.echarts` | 
						|
                echarts: 'echarts' | 
						|
            }, | 
						|
            file: getPathBasedOnECharts(`dist/extension/dataTool${postfix}.js`) | 
						|
        }, | 
						|
        watch: { | 
						|
            include: [getPathBasedOnECharts('./extension-src/dataTool/**')] | 
						|
        } | 
						|
    }; | 
						|
};
 | 
						|
 |