Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Framasoft
PeerTube
PeerTube
Commits
ad22074a
Commit
ad22074a
authored
Sep 19, 2016
by
Chocobozzz
Browse files
Client: fix prod build process
parent
d268c551
Changes
5
Hide whitespace changes
Inline
Side-by-side
client/config/webpack.common.js
View file @
ad22074a
...
...
@@ -142,15 +142,11 @@ module.exports = function (options) {
},
{
test
:
/
\.
scss$/
,
exclude
:
/node_modules/
,
loaders
:
[
'
raw-loader
'
,
'
sass-loader
'
]
},
{
test
:
/
\.(
woff2
?
|ttf|eot|svg
)
$/
,
loader
:
'
url?limit=10000&name=assets/fonts/[hash].[ext]
'
test
:
/
\.(
sass|scss
)
$/
,
loaders
:
[
'
css-to-string-loader
'
,
'
css-loader?sourceMap
'
,
'
resolve-url
'
,
'
sass-loader?sourceMap
'
]
},
{
test
:
/
\.
woff
(
2
)?(\?
v=
[
0-9
]\.[
0-9
]\.[
0-9
])?
$/
,
loader
:
'
url?limit=10000&minetype=application/font-woff
'
},
{
test
:
/
\.(
ttf|eot|svg
)(\?
v=
[
0-9
]\.[
0-9
]\.[
0-9
])?
$/
,
loader
:
'
file
'
},
/* Raw loader support for *.html
* Returns file content as string
...
...
client/config/webpack.prod.js
View file @
ad22074a
...
...
@@ -30,201 +30,203 @@ const METADATA = webpackMerge(commonConfig({env: ENV}).metadata, {
HMR
:
false
})
module
.
exports
=
webpackMerge
(
commonConfig
,
{
/**
* Switch loaders to debug mode.
*
* See: http://webpack.github.io/docs/configuration.html#debug
*/
debug
:
false
,
/**
* Developer tool to enhance debugging
*
* See: http://webpack.github.io/docs/configuration.html#devtool
* See: https://github.com/webpack/docs/wiki/build-performance#sourcemaps
*/
devtool
:
'
source-map
'
,
/**
* Options affecting the output of the compilation.
*
* See: http://webpack.github.io/docs/configuration.html#output
*/
output
:
{
module
.
exports
=
function
(
env
)
{
return
webpackMerge
(
commonConfig
({
env
:
ENV
}),
{
/**
*
The output directory as absolute path (required)
.
*
Switch loaders to debug mode
.
*
* See: http://webpack.github.io/docs/configuration.html#
output-path
* See: http://webpack.github.io/docs/configuration.html#
debug
*/
path
:
helpers
.
root
(
'
dist
'
)
,
debug
:
false
,
/**
* Specifies the name of each output file on disk.
* IMPORTANT: You must not specify an absolute path here!
* Developer tool to enhance debugging
*
* See: http://webpack.github.io/docs/configuration.html#output-filename
* See: http://webpack.github.io/docs/configuration.html#devtool
* See: https://github.com/webpack/docs/wiki/build-performance#sourcemaps
*/
filename
:
'
[name].[chunkhash].bundle.js
'
,
devtool
:
'
source-map
'
,
/**
* The filename of the SourceMaps for the JavaScript files.
* They are inside the output.path directory.
* Options affecting the output of the compilation.
*
* See: http://webpack.github.io/docs/configuration.html#output
-sourcemapfilename
* See: http://webpack.github.io/docs/configuration.html#output
*/
sourceMapFilename
:
'
[name].[chunkhash].bundle.map
'
,
output
:
{
/**
* The output directory as absolute path (required).
*
* See: http://webpack.github.io/docs/configuration.html#output-path
*/
path
:
helpers
.
root
(
'
dist
'
),
/**
* Specifies the name of each output file on disk.
* IMPORTANT: You must not specify an absolute path here!
*
* See: http://webpack.github.io/docs/configuration.html#output-filename
*/
filename
:
'
[name].[chunkhash].bundle.js
'
,
/**
* The filename of the SourceMaps for the JavaScript files.
* They are inside the output.path directory.
*
* See: http://webpack.github.io/docs/configuration.html#output-sourcemapfilename
*/
sourceMapFilename
:
'
[name].[chunkhash].bundle.map
'
,
/**
* The filename of non-entry chunks as relative path
* inside the output.path directory.
*
* See: http://webpack.github.io/docs/configuration.html#output-chunkfilename
*/
chunkFilename
:
'
[id].[chunkhash].chunk.js
'
},
externals
:
{
webtorrent
:
'
WebTorrent
'
},
/**
* The filename of non-entry chunks as relative path
* inside the output.path directory.
* Add additional plugins to the compiler.
*
* See: http://webpack.github.io/docs/configuration.html#
output-chunkfilename
* See: http://webpack.github.io/docs/configuration.html#
plugins
*/
chunkFilename
:
'
[id].[chunkhash].chunk.js
'
},
externals
:
{
webtorrent
:
'
WebTorrent
'
},
/**
* Add additional plugins to the compiler.
*
* See: http://webpack.github.io/docs/configuration.html#plugins
*/
plugins
:
[
/**
* Plugin: WebpackMd5Hash
* Description: Plugin to replace a standard webpack chunkhash with md5.
*
* See: https://www.npmjs.com/package/webpack-md5-hash
*/
new
WebpackMd5Hash
(),
plugins
:
[
/**
* Plugin: WebpackMd5Hash
* Description: Plugin to replace a standard webpack chunkhash with md5.
*
* See: https://www.npmjs.com/package/webpack-md5-hash
*/
new
WebpackMd5Hash
(),
/**
* Plugin: DedupePlugin
* Description: Prevents the inclusion of duplicate code into your bundle
* and instead applies a copy of the function at runtime.
*
* See: https://webpack.github.io/docs/list-of-plugins.html#defineplugin
* See: https://github.com/webpack/docs/wiki/optimization#deduplication
*/
// new DedupePlugin(),
/**
* Plugin: DefinePlugin
* Description: Define free variables.
* Useful for having development builds with debug logging or adding global constants.
*
* Environment helpers
*
* See: https://webpack.github.io/docs/list-of-plugins.html#defineplugin
*/
// NOTE: when adding more properties make sure you include them in custom-typings.d.ts
new
DefinePlugin
({
'
ENV
'
:
JSON
.
stringify
(
METADATA
.
ENV
),
'
HMR
'
:
METADATA
.
HMR
,
'
process.env
'
:
{
'
ENV
'
:
JSON
.
stringify
(
METADATA
.
ENV
),
'
NODE_ENV
'
:
JSON
.
stringify
(
METADATA
.
ENV
),
'
HMR
'
:
METADATA
.
HMR
}
}),
/**
* Plugin: UglifyJsPlugin
* Description: Minimize all JavaScript output of chunks.
* Loaders are switched into minimizing mode.
*
* See: https://webpack.github.io/docs/list-of-plugins.html#uglifyjsplugin
*/
// NOTE: To debug prod builds uncomment //debug lines and comment //prod lines
new
UglifyJsPlugin
({
// beautify: true, //debug
// mangle: false, //debug
// dead_code: false, //debug
// unused: false, //debug
// deadCode: false, //debug
// compress: {
// screw_ie8: true,
// keep_fnames: true,
// drop_debugger: false,
// dead_code: false,
// unused: false
// }, // debug
// comments: true, //debug
beautify
:
false
,
// prod
mangle
:
{
screw_ie8
:
true
,
keep_fnames
:
true
},
// prod
compress
:
{
screw_ie8
:
true
},
// prod
comments
:
false
// prod
}),
new
NormalModuleReplacementPlugin
(
/angular2-hmr/
,
helpers
.
root
(
'
config/modules/angular2-hmr-prod.js
'
)
)
/**
* Plugin: CompressionPlugin
* Description: Prepares compressed versions of assets to serve
* them with Content-Encoding
*
* See: https://github.com/webpack/compression-webpack-plugin
*/
// new CompressionPlugin({
// regExp: /\.css$|\.html$|\.js$|\.map$/,
// threshold: 2 * 1024
// })
/**
* Plugin: DedupePlugin
* Description: Prevents the inclusion of duplicate code into your bundle
* and instead applies a copy of the function at runtime.
*
* See: https://webpack.github.io/docs/list-of-plugins.html#defineplugin
* See: https://github.com/webpack/docs/wiki/optimization#deduplication
*/
// new DedupePlugin(),
],
/**
* Plugin: DefinePlugin
* Description: Define free variables.
* Useful for having development builds with debug logging or adding global constants.
*
* Environment helpers
* Static analysis linter for TypeScript advanced options configuration
* Description: An extensible linter for the TypeScript language.
*
* See: https://
webpack.github.io/docs/list-of-plugins.html#defineplugin
* See: https://
github.com/wbuchwalter/tslint-loader
*/
// NOTE: when adding more properties make sure you include them in custom-typings.d.ts
new
DefinePlugin
({
'
ENV
'
:
JSON
.
stringify
(
METADATA
.
ENV
),
'
HMR
'
:
METADATA
.
HMR
,
'
process.env
'
:
{
'
ENV
'
:
JSON
.
stringify
(
METADATA
.
ENV
),
'
NODE_ENV
'
:
JSON
.
stringify
(
METADATA
.
ENV
),
'
HMR
'
:
METADATA
.
HMR
}
}),
tslint
:
{
emitErrors
:
true
,
failOnHint
:
true
,
resourcePath
:
'
src
'
},
/**
* Plugin: UglifyJsPlugin
* Description: Minimize all JavaScript output of chunks.
* Loaders are switched into minimizing mode.
* Html loader advanced options
*
* See: https://
webpack.github.io/docs/list-of-plugins.html#uglifyjsplugin
* See: https://
github.com/webpack/html-loader#advanced-options
*/
// NOTE: To debug prod builds uncomment //debug lines and comment //prod lines
new
UglifyJsPlugin
({
// beautify: true, //debug
// mangle: false, //debug
// dead_code: false, //debug
// unused: false, //debug
// deadCode: false, //debug
// compress: {
// screw_ie8: true,
// keep_fnames: true,
// drop_debugger: false,
// dead_code: false,
// unused: false
// }, // debug
// comments: true, //debug
beautify
:
false
,
// prod
mangle
:
{
screw_ie8
:
true
,
keep_fnames
:
true
},
// prod
compress
:
{
screw_ie8
:
true
},
// prod
comments
:
false
// prod
}),
new
NormalModuleReplacementPlugin
(
/angular2-hmr/
,
helpers
.
root
(
'
config/modules/angular2-hmr-prod.js
'
)
)
/**
* Plugin: CompressionPlugin
* Description: Prepares compressed versions of assets to serve
* them with Content-Encoding
// TODO: Need to workaround Angular 2's html syntax => #id [bind] (event) *ngFor
htmlLoader
:
{
minimize
:
true
,
removeAttributeQuotes
:
false
,
caseSensitive
:
true
,
customAttrSurround
:
[
[
/#/
,
/
(?:)
/
],
[
/
\*
/
,
/
(?:)
/
],
[
/
\[?\(?
/
,
/
(?:)
/
]
],
customAttrAssign
:
[
/
\)?\]?
=/
]
},
/*
* Include polyfills or mocks for various node stuff
* Description: Node configuration
*
* See: https://
github.com/webpack/compression-webpack-plugin
* See: https://
webpack.github.io/docs/configuration.html#node
*/
// new CompressionPlugin({
// regExp: /\.css$|\.html$|\.js$|\.map$/,
// threshold: 2 * 1024
// })
],
/**
* Static analysis linter for TypeScript advanced options configuration
* Description: An extensible linter for the TypeScript language.
*
* See: https://github.com/wbuchwalter/tslint-loader
*/
tslint
:
{
emitErrors
:
true
,
failOnHint
:
true
,
resourcePath
:
'
src
'
},
/**
* Html loader advanced options
*
* See: https://github.com/webpack/html-loader#advanced-options
*/
// TODO: Need to workaround Angular 2's html syntax => #id [bind] (event) *ngFor
htmlLoader
:
{
minimize
:
true
,
removeAttributeQuotes
:
false
,
caseSensitive
:
true
,
customAttrSurround
:
[
[
/#/
,
/
(?:)
/
],
[
/
\*
/
,
/
(?:)
/
],
[
/
\[?\(?
/
,
/
(?:)
/
]
],
customAttrAssign
:
[
/
\)?\]?
=/
]
},
/*
* Include polyfills or mocks for various node stuff
* Description: Node configuration
*
* See: https://webpack.github.io/docs/configuration.html#node
*/
node
:
{
global
:
'
window
'
,
crypto
:
'
empty
'
,
process
:
false
,
module
:
false
,
clearImmediate
:
false
,
setImmediate
:
false
}
})
node
:
{
global
:
'
window
'
,
crypto
:
'
empty
'
,
process
:
false
,
module
:
false
,
clearImmediate
:
false
,
setImmediate
:
false
}
})
}
client/package.json
View file @
ad22074a
...
...
@@ -43,6 +43,7 @@
"copy-webpack-plugin"
:
"^3.0.1"
,
"core-js"
:
"^2.4.1"
,
"css-loader"
:
"^0.25.0"
,
"css-to-string-loader"
:
"^0.1.1"
,
"es6-promise"
:
"^3.0.2"
,
"es6-promise-loader"
:
"^1.0.1"
,
"es6-shim"
:
"^0.35.0"
,
...
...
@@ -53,13 +54,13 @@
"json-loader"
:
"^0.5.4"
,
"ng2-bootstrap"
:
"^1.1.5"
,
"ng2-file-upload"
:
"^1.0.3"
,
"node-sass"
:
"^3.
7
.0"
,
"node-sass"
:
"^3.
10
.0"
,
"normalize.css"
:
"^4.1.1"
,
"raw-loader"
:
"^0.5.1"
,
"reflect-metadata"
:
"0.1.3"
,
"resolve-url-loader"
:
"^1.
4.3
"
,
"resolve-url-loader"
:
"^1.
6.0
"
,
"rxjs"
:
"5.0.0-beta.12"
,
"sass-loader"
:
"^3.2.
0
"
,
"sass-loader"
:
"^3.2.
3
"
,
"source-map-loader"
:
"^0.1.5"
,
"string-replace-loader"
:
"^1.0.3"
,
"style-loader"
:
"^0.13.1"
,
...
...
client/tsconfig.json
View file @
ad22074a
...
...
@@ -17,11 +17,7 @@
"es6"
],
"types"
:
[
"hammerjs"
,
"jasmine"
,
"node"
,
"protractor"
,
"selenium-webdriver"
,
"source-map"
,
"uglify-js"
,
"webpack"
...
...
scripts/build/client/prod.sh
View file @
ad22074a
...
...
@@ -2,4 +2,4 @@
cd
client
||
exit
-1
npm run webpack
--
--config
config/webpack.prod.js
--progress
--profile
--colors
--display-error-details
--display-cached
--bail
npm run webpack
--
--config
config/webpack.prod.js
--progress
--profile
--bail
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment