123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- var CopyWebpackPlugin = require('copy-webpack-plugin');
- var HtmlWebpackPlugin = require('html-webpack-plugin');
- var WriteFileWebpackPlugin = require('write-file-webpack-plugin');
- var autoPrefixer = require('autoprefixer');
- var path = require('path');
- var webpack = require('webpack');
- var outDir = path.resolve(__dirname, 'dist');
- module.exports = {
- devServer: {
- contentBase: outDir,
- outputPath: outDir,
- port: 4000
- },
- devtool: 'cheap-module-source-map',
- // Externals copied to /dist via CopyWebpackPlugin
- externals:
- {
- 'angular': true,
- // Wrapped in window because of hyphens
- 'angular-ui-router': 'window["angular-ui-router"]',
- 'angular-translate': 'window["angular-translate"]'
- },
- module: {
- preLoaders: [
- {
- test: /\.ts$/,
- loader: 'tslint'
- }
- ],
- loaders: [
- {
- test: /\.ts$/,
- loader: 'ts',
- exclude: /node_modules/
- },
- {
- test: /index\.html$/,
- loader: 'html',
- exclude: /node_modules/
- },
- {
- test: /\.html$/,
- loader: 'ngtemplate?relativeTo=' + (path.resolve(__dirname, './src')) + '/!html',
- exclude: /index\.html$/
- },
- {
- test: /\.scss$/,
- loaders: [ 'style', 'css', 'sass', 'postcss' ]
- },
- {
- test: /\.json/,
- loaders: [ 'json' ]
- },
- {
- test: /\.(png|jpg|jpeg|gif|svg)$/,
- loaders: [ 'url?limit=25000' ]
- }
- ]
- },
- // [name] is replaced by entry point name
- output: {
- filename: '[name].js',
- path: outDir
- },
- plugins: [
- new CopyWebpackPlugin([
- { from: 'vendor/angular-ui-router.js', to: 'vendor/' },
- { from: 'node_modules/angular/angular.js', to: 'vendor/' },
- { from: 'node_modules/angular-sanitize/angular-sanitize.js', to: 'vendor/' },
- { from: 'node_modules/angular-translate/dist/angular-translate.js', to: 'vendor/' },
- { from: 'images/', to: 'images/' }
- ]),
- new HtmlWebpackPlugin({
- template: 'index.html',
- inject: 'body'
- }),
- // Because we copy the output to another directory, we need file system watch support.
- // Webpack-dev-server does not do this without the plugin.
- new WriteFileWebpackPlugin()
- ],
- postcss: function() {
- return [
- autoPrefixer({
- browsers: ['last 2 versions']
- })
- ];
- },
- resolve: {
- extensions: [ '', '.ts', '.js', '.json' ],
- modulesDirectories: ['./src', './vendor', 'node_modules']
- }
- };
|