]>
git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - client/config/webpack.dev.js
03d6d2fba9410d4f29678bcc59755a4142ada27d
1 const helpers
= require('./helpers')
2 const webpackMerge
= require('webpack-merge') // used to merge webpack configs
3 const webpackMergeDll
= webpackMerge
.strategy({plugins: 'replace'})
4 const commonConfig
= require('./webpack.common.js') // the settings that are common to prod and dev
9 const AddAssetHtmlPlugin
= require('add-asset-html-webpack-plugin')
10 const DefinePlugin
= require('webpack/lib/DefinePlugin')
11 const NamedModulesPlugin
= require('webpack/lib/NamedModulesPlugin')
12 const LoaderOptionsPlugin
= require('webpack/lib/LoaderOptionsPlugin')
17 const ENV
= process
.env
.ENV
= process
.env
.NODE_ENV
= 'development'
18 const HOST
= process
.env
.HOST
|| 'localhost'
19 const PORT
= process
.env
.PORT
|| 3000
20 const HMR
= helpers
.hasProcessFlag('hot')
21 const METADATA
= webpackMerge(commonConfig({env: ENV
}).metadata
, {
28 const DllBundlesPlugin
= require('webpack-dll-bundles-plugin').DllBundlesPlugin
31 * Webpack configuration
33 * See: http://webpack.github.io/docs/configuration.html#cli
35 module
.exports = function (env
) {
36 return webpackMerge(commonConfig({ env: ENV
}), {
38 * Developer tool to enhance debugging
40 * See: http://webpack.github.io/docs/configuration.html#devtool
41 * See: https://github.com/webpack/docs/wiki/build-performance#sourcemaps
43 devtool: 'cheap-module-source-map',
46 * Options affecting the output of the compilation.
48 * See: http://webpack.github.io/docs/configuration.html#output
52 * The output directory as absolute path (required).
54 * See: http://webpack.github.io/docs/configuration.html#output-path
56 path: helpers
.root('dist'),
59 * Specifies the name of each output file on disk.
60 * IMPORTANT: You must not specify an absolute path here!
62 * See: http://webpack.github.io/docs/configuration.html#output-filename
64 filename: '[name].bundle.js',
67 * The filename of the SourceMaps for the JavaScript files.
68 * They are inside the output.path directory.
70 * See: http://webpack.github.io/docs/configuration.html#output-sourcemapfilename
72 sourceMapFilename: '[name].map',
74 /** The filename of non-entry chunks as relative path
75 * inside the output.path directory.
77 * See: http://webpack.github.io/docs/configuration.html#output-chunkfilename
79 chunkFilename: '[id].chunk.js',
84 publicPath: '/client/'
88 webtorrent: 'WebTorrent'
93 // Too slow, life is short
99 // loader: 'tslint-loader',
101 // configFile: 'tslint.json'
106 // /\.(spec|e2e)\.ts$/,
116 * Plugin: DefinePlugin
117 * Description: Define free variables.
118 * Useful for having development builds with debug logging or adding global constants.
120 * Environment helpers
122 * See: https://webpack.github.io/docs/list-of-plugins.html#defineplugin
124 // NOTE: when adding more properties, make sure you include them in custom-typings.d.ts
126 'ENV': JSON
.stringify(METADATA
.ENV
),
129 'ENV': JSON
.stringify(METADATA
.ENV
),
130 'NODE_ENV': JSON
.stringify(METADATA
.ENV
),
135 new DllBundlesPlugin({
141 path: 'zone.js/dist/zone.js'
145 path: 'zone.js/dist/long-stack-trace-zone.js'
149 '@angular/platform-browser',
150 '@angular/platform-browser-dynamic',
160 dllDir: helpers
.root('dll'),
161 webpackConfig: webpackMergeDll(commonConfig({env: ENV
}), {
162 devtool: 'cheap-module-source-map',
168 * Plugin: AddAssetHtmlPlugin
169 * Description: Adds the given JS or CSS file to the files
170 * Webpack knows about, and put it into the list of assets
171 * html-webpack-plugin injects into the generated html.
173 * See: https://github.com/SimenB/add-asset-html-webpack-plugin
175 new AddAssetHtmlPlugin([
176 { filepath: helpers
.root(`dll/${DllBundlesPlugin.resolveFile('polyfills')}`) },
177 { filepath: helpers
.root(`dll/${DllBundlesPlugin.resolveFile('vendor')}`) }
181 * Plugin: NamedModulesPlugin (experimental)
182 * Description: Uses file names as module name.
184 * See: https://github.com/webpack/webpack/commit/a04ffb928365b19feb75087c63f13cadfc08e1eb
186 new NamedModulesPlugin(),
189 * Plugin LoaderOptionsPlugin (experimental)
191 * See: https://gist.github.com/sokra/27b24881210b56bbaff7
193 new LoaderOptionsPlugin({
198 * Static analysis linter for TypeScript advanced options configuration
199 * Description: An extensible linter for the TypeScript language.
201 * See: https://github.com/wbuchwalter/tslint-loader
211 // https://github.com/bholloway/resolve-url-loader/issues/36
212 // https://github.com/jtangelder/sass-loader/issues/289
215 path: helpers
.root('dist')
224 * Webpack Development Server configuration
225 * Description: The webpack-dev-server is a little node.js Express server.
226 * The server emits information about the compilation state to the client,
227 * which reacts to those events.
229 * See: https://webpack.github.io/docs/webpack-dev-server.html
234 historyApiFallback: true,
236 ignored: /node_modules/
238 outputPath: helpers
.root('dist')
242 * Include polyfills or mocks for various node stuff
243 * Description: Node configuration
245 * See: https://webpack.github.io/docs/configuration.html#node
252 clearImmediate: false,