UNPKG

es2049package

Version:

ECMAScript 2049 package: zero-configuration libraries and command-line utilies by Harald Rudell

65 lines (54 loc) 2.5 kB
/* © 2017-present Harald Rudell <harald.rudell@gmail.com> (http://www.haraldrudell.com) This source code is licensed under the ISC-style license found in the LICENSE file in the root directory of this source tree. */ import pjson from '../package.json' import nodeIgnores from '../src/nodepackages.js' import babelPrintFilename from '../src/babelPrintFilenamePlugin.js' import {convertYaml} from './convertYaml.js' import babel from 'rollup-plugin-babel' import commonjs from 'rollup-plugin-commonjs' import _eslint from 'rollup-plugin-eslint'; const {eslint} = _eslint import json from 'rollup-plugin-json' import resolve from 'rollup-plugin-node-resolve' import {shebang as shebangPlugin, chmod} from 'rollup-plugin-thatworks' import path from 'path' import util from 'util' const srcRollupConfig = 'src/rollup.config.mjs' const print = !!process.env.DEBUG convertYaml(path.resolve('src', 'eslintrc.yaml'), path.resolve('src', 'eslintrc.json')) export default [ {input: srcRollupConfig, output: {file: pjson.main, format: 'es'}, options: {dependencies: true}}, {input: 'src/cleanbin.js', output: {file: 'bin/clean.js', format: 'es'}, options: {shebang: true}}, {input: 'src/rollup.js', output: {file: 'bin/rollup.js', format: 'es'}, options: {shebang: true}}, ].map(getConfig) function getConfig(config0) { const {options: {shebang, dependencies}, input, output} = config0 const includeExclude = { include: ['**/*.js', '**/*.mjs'], exclude: 'node_modules/**', } let babelOptions const config = { input, output, external: nodeIgnores.slice().concat(Object.keys(Object(Object(pjson).dependencies))), plugins: [ eslint(includeExclude), resolve({extensions: ['.mjs', '.js', '.json'], jail: process.cwd()}), json(), // required for import of .json files babel(babelOptions = Object.assign({ babelrc: false, // unlike babel-node, rollup fails if an es2015 module transformer is included //runtimeHelpers: true, presets: [['@babel/preset-env', {targets: {node: '12'}, modules: false}]], plugins: [ ].concat(print ? babelPrintFilename : []), }, includeExclude)), commonjs(), ].concat(shebang ? [shebangPlugin(), chmod()] : []), } if (print) { console.log(`Rollup options for ${config.input}: ${util.inspect(config, {colors: true, depth: null})}`) console.log('Rollup-Babel options:', util.inspect(babelOptions, {colors: true, depth: null})) } return config }