123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- 'use strict';
- const fs = require("fs");
- const nodeExternals = require('webpack-node-externals');
- const webpack = require('webpack');
- const CheckerPlugin = require('awesome-typescript-loader').CheckerPlugin;
- const TSLintPlugin = require('tslint-webpack-plugin');
- const copyright = 'Copyright (C) 2016-2018 Timofey Kachalov <[email protected]>';
- /**
- * @return {string}
- */
- const getLicenseText = () => {
- return `/*!\n${copyright}\n\n` +
- fs.readFileSync('./LICENSE.BSD', 'utf8') + "\n*/";
- };
- /**
- * @return {string}
- */
- const getSourceMapSupportImport = () => {
- return `require("source-map-support").install();`;
- };
- /**
- * @return {string}
- */
- const getBannerText = () => {
- const lineSeparator = '\n\n';
- return getLicenseText() +
- lineSeparator +
- getSourceMapSupportImport() +
- lineSeparator;
- };
- module.exports = {
- entry: {
- 'index': './index.ts'
- },
- cache: true,
- devtool: 'source-map',
- target: 'node',
- externals: [nodeExternals()],
- module: {
- exprContextCritical: false,
- rules: [
- {
- test: /\.ts(x?)$/,
- loader: 'awesome-typescript-loader',
- query: {
- useBabel: true,
- useCache: true,
- forceIsolatedModules: true
- }
- }
- ]
- },
- resolve: {
- extensions: ['.ts']
- },
- plugins: [
- new webpack.BannerPlugin(
- {
- banner: getBannerText(),
- raw: true,
- entryOnly: false
- }
- ),
- new CheckerPlugin(),
- new TSLintPlugin({
- files: ['./src/**/*.ts'],
- project: './tsconfig.json',
- exclude: []
- })
- ],
- output: {
- path: __dirname + '/dist',
- filename: '[name].js',
- libraryTarget: "commonjs2",
- library: "JavaScriptObfuscator"
- },
- stats: {
- maxModules: 0
- }
- };
|