UNPKG

@gobistories/gobi-web-integration

Version:

Welcome to Gobi Web Integration. This library will let you put your Gobi stories on your site.

105 lines (102 loc) 3.49 kB
const path = require('path'); const { CheckerPlugin } = require('awesome-typescript-loader'); const MiniCssExtractPlugin = require("mini-css-extract-plugin"); const autoprefixer = require('autoprefixer'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const CleanWebpackPlugin = require('clean-webpack-plugin'); const OptimizeCSSAssetsPlugin = require("optimize-css-assets-webpack-plugin"); const UglifyJsPlugin = require("uglifyjs-webpack-plugin"); const devMode = process.env.NODE_ENV !== 'production'; module.exports = { mode: devMode ? 'development' : 'production', entry: './src/index.ts', output: { path: path.resolve(__dirname, 'dist'), filename: 'gobi-web-integration.js', library: 'gobi', libraryTarget: 'umd' }, devServer: { contentBase: path.join(__dirname, 'dist'), host: '0.0.0.0', port: 9000 }, resolve: { extensions: ['.ts', '.tsx', '.js', '.jsx'], alias: { '@': path.resolve(__dirname, 'src/'), } }, module: { rules: [ { test: /\.tsx?$/, loader: 'awesome-typescript-loader', options: { useCache: true, useBabel: true, babelOptions: { babelrc: false, /* Important line */ presets: [ ["@babel/preset-env", { "targets": "last 2 versions, ie 11", "modules": false }], ], plugins: ["@babel/plugin-transform-object-assign"] }, "babelCore": "@babel/core", // needed for Bab } }, { test: /\.scss$/, use: [ { loader: devMode ? 'style-loader' : MiniCssExtractPlugin.loader }, { loader: 'css-loader', options: { sourceMap: devMode } }, { loader: 'postcss-loader', options: { plugins: [ autoprefixer({ browsers: ['> 0.01%', 'last 2 version'] }) ], sourceMap: devMode } }, { loader: 'sass-loader', options: { sourceMap: devMode } } ] } ] }, optimization: { minimizer: [ new UglifyJsPlugin({ sourceMap: devMode // set to true if you want JS source maps }), new OptimizeCSSAssetsPlugin({}) ] }, plugins: [ new CleanWebpackPlugin(), new CheckerPlugin(), new MiniCssExtractPlugin({ // Options similar to the same options in webpackOptions.output // both options are optional filename: "gobi-web-integration.css" }), new HtmlWebpackPlugin({ template: 'index.html' }) ] };