Beispiel #1
0
exports.compile = async function (file, dest, {external, globals, name, aliases, bundled, replaces, minify = true}) {

    name = (name || '').replace(/[^\w]/g, '_');

    const bundle = await rollup.rollup({
        external,
        input: `${resolve(dirname(file), basename(file, '.js'))}.js`,
        plugins: [
            replace(Object.assign({
                BUNDLED: bundled || false,
                VERSION: `'${version}'`
            }, replaces)),
            alias({
                Paths: Object.assign({
                    'uikit-util': './src/js/util/index'
                }, aliases),
                Extensions: ['js', 'json']
            }),
            html({
                include: '**/*.svg',
                htmlMinifierOptions: {
                    collapseWhitespace: true
                }
            }),
            json(),
            buble({namedFunctionExpressions: false})
        ]
    });

    let {output: [{code, map}]} = await bundle.generate({
        globals,
        format: 'umd',
        banner: exports.banner,
        amd: {id: `UIkit${name}`.toLowerCase()},
        name: `UIkit${exports.ucfirst(name)}`,
        sourcemap: !minify ? 'inline' : false
    });

    code = code.replace(/(>)\\n\s+|\\n\s+(<)/g, '$1 $2');

    return Promise.all([
        exports.write(`${dest}.js`, code + (!minify ? '\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,' + Buffer.from(map.toString()).toString('base64') : '')),
        minify ? exports.write(`${dest}.min.js`, uglify.minify(code, {output: {preamble: exports.banner}}).code) : null
    ])[0];

};
Beispiel #2
0
gulp.task('rollup', function() {
    return rollup({
        input: './build/Root.js',
        format: 'iife',
        // kludge 2: vue uses `process` somewhere in the code
        banner: 'window.process = { env: { NODE_ENV: "production" } };',
        // kludge 3: cannot bundle vue together with the app
        // it uses the wrong version from 'dist' folder
        external: [ 'vue', 'axios' ],
        globals: {
            'vue': 'Vue',
            'axios': 'axios'
        },
        onwarn: function(warn) {
            if(warn.code === 'THIS_IS_UNDEFINED') {
                return;
            } else {
                console.error(warn.message);
            }
        },
        plugins: [
            rollupResolve({
                jsnext: true,
                main: true,
                browser: true
            }),
            // kludge 4: otherwise rollup cannot find default exports for some modules
            rollupCjs({
                include: 'node_modules/**'
            }),
            rollupHtml({
                htmlMinifierOptions: {
                    keepClosingSlash: true
                }
            })
        ]
    })
    .pipe(source('app.js'))
    .pipe(gulp.dest('./app'));
});
Beispiel #3
0
exports.compile = function (file, dest, external, globals, name, aliases, bundled) {

    name = (name || '').replace(/[^\w]/g, '_');

    return rollup.rollup({
        external,
        entry: `${path.resolve(path.dirname(file), path.basename(file, '.js'))}.js`,
        plugins: [
            replace({
                BUNDLED: bundled || false,
                VERSION: `'${version}'`
            }),
            alias({
                Paths: aliases || {},
                Extensions: ['js', 'json']
            }),
            html({
                include: '**/*.svg',
                htmlMinifierOptions: {
                    collapseWhitespace: true
                }
            }),
            json(),
            buble(),
        ]
    })
        .then(bundle => exports.write(`${dest}.js`, bundle.generate({
            globals,
            format: 'umd',
            banner: exports.banner,
            moduleId: `UIkit${name}`.toLowerCase(),
            moduleName: `UIkit${exports.ucfirst(name)}`,
        }).code))
        .then(exports.uglify)
        .catch(console.log);
};
Beispiel #4
0
    {
      file: './es/vs_ui.js',
      name: 'vs_ui',
      globals: {
        vs_utils: 'vs_utils',
        vs_core: 'vs_core',
        vs_gesture: 'vs_gesture'
      },
      format: 'es',
    },
    {
      file: './lib/vs_ui.js',
      name: 'vs_ui',
      globals: {
        vs_utils: 'vs_utils',
        vs_core: 'vs_core',
        vs_gesture: 'vs_gesture'
      },
      format: 'amd'
    }
  ],
  plugins: [
    html({
      include: 'src/ui/**/*.html'
    }),
    // visualizer({
    //   filename: './stats/ui.html'
    // })
  ]
};