:
npm install rollup-plugin-buble rollup-plugin-commonjs rollup-plugin-node-resolve rollup-plugin-typescript rollup-plugin-uglify typescript --save-dev
- , :
rollup.config.js
'use strict';
import 'rollup';
import typescript from 'rollup-plugin-typescript';
import buble from 'rollup-plugin-buble';
import commonjs from 'rollup-plugin-commonjs';
import nodeResolve from 'rollup-plugin-node-resolve';
import uglify from 'rollup-plugin-uglify';
import {minify} from 'uglify-js';
const config = {
entry: 'src/index.ts',
exports: 'auto',
globals: {
'jquery': '$',
'angular': 'angular'
},
external: ['angular', 'jquery'],
targets: [{dest: 'dist/myModuleName.js', format: 'umd', moduleName: 'myModuleName', sourceMap: true}],
plugins: [
typescript({
typescript: require('typescript')
}),
buble(),
nodeResolve({
jsnext: true,
main: true
}),
commonjs({
namedExports: {
'node_modules/jquery/dist/jquery.min.js': ['jquery'],
'node_modules/angular/angular.min.js': ['angular']
}
})
]
}
if (process.env.BUILD === 'minify') {
config.targets = [{dest: 'dist/myModuleName.min.js', format: 'umd', moduleName: 'myModuleName', sourceMap: false}];
config.plugins.push(
uglify({}, minify)
);
}
console.info(`\u001b[36m\[Rollup ${process.env.BUILD} build\]\u001b[97m \nConverting Typescript from ${
config.entry} to javascript, exporting to: ${config.targets[0].dest}`);
export default config
- package.json
"scripts": {
"build": "rollup -c rollup.config.js --no-conflict --environment BUILD:development",
"minify": "rollup -c rollup.config.js --environment INCLUDE_DEPS,BUILD:minify"
}
- :
SRC/index.ts
`export * from './myModule';`
- , , , .
SRC/myModule.ts
export {myClass} from './myFile';
export {myOtherClass, myFunction} from './myUtils/myFile';
export * from "./myUtils/myOtherFile";
npm run build npm run build && npm run minify, -.