Basta mettere questo fuori là per vedere se qualcun altro sta avendo questo problema ...dattiloscritto compilazione estremamente lento> 12s
Ho la costruzione di un 2 app angolare dattiloscritto usando webpack come il mio strumento di compilazione, tutto funziona bene , comunque ho notato che la compilazione di dattiloscritto è super super slow, sono a 12 secondi adesso .... ed è abbastanza chiaro che tutto è dovuto al processo di compilazione dattiloscritto ....
Ho usato ts- loader o caricatore dattiloscritto con un risultato simile, se commento questo caricatore, il mio tempo di costruzione scende a circa 1 secondo ....
Dopo alcuni ricerca sembra che il suo 'normale' avere tempi 'lenti' durante la compilazione del dattiloscritto, ma 12sec è il normale ??
Vecchi post suggerito che potrebbe essere a causa di un conflitto di versione nodo, Sono attualmente in esecuzione v4.4.2 ...
Qualsiasi come di seguito è il mio codice webpack nel caso qualcuno ha visto qualcosa che non va lì .. il codice commentato nella sezione Uglify è a causa di qualche 'bug' sul lato 2 angolare ...
const path = require('path');
const merge = require('webpack-merge');
const webpack = require('webpack');
const NpmInstallPlugin = require('npm-install-webpack-plugin');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const TARGET = process.env.npm_lifecycle_event;
const PATHS = {
app: path.join(__dirname, 'app'),
dist: path.join(__dirname, 'dist')
};
const common = {
entry: {
vendor: ['./app/vendor.ts'],
main: ['./app/boot.component.ts']
},
output: {
filename: '[name].[hash].bundle.js',
path: PATHS.dist
},
resolve: {
extensions: ['', '.js', '.ts']
},
plugins: [
new HtmlWebpackPlugin({
title: 'Qarrot Performance',
template: 'index.template.ejs',
commonStyles: [
'/public/styles/vendor/normalize.css',
'/public/styles/main.css'
],
commonScripts: [],
baseHref: '/',
unsupportedBrowser: true,
mobile: true,
appMountId: 'app'
}),
],
module: {
loaders: [
{
test: /\.ts$/,
exclude: /node_modules/,
loaders: ['ts-loader']
},
{
test: /\.scss$/,
loader: 'raw-loader!sass-loader'
},
{
test: /\.html$/,
loader: "html"
}
]
}
}
// Dev Settings
if(TARGET === 'start' || !TARGET) {
module.exports = merge(common, {
devtool: 'eval-source-map',
devServer: {
contentBase: PATHS.build,
historyApiFallback: true,
hot: true,
inline: true,
progress: true,
stats: 'errors-only',
},
plugins: [
new webpack.HotModuleReplacementPlugin(),
new NpmInstallPlugin({
save: true
})
]
});
}
// Prod Settings
if(TARGET === 'build') {
module.exports = merge(common, {
devtool: 'cheap-module-source-map',
plugins: [
// new webpack.optimize.UglifyJsPlugin({
// beautify: false,
// mangle: false,
// compress : { screw_ie8 : true },
// comments: false
// }),
new webpack.optimize.DedupePlugin(),
new webpack.DefinePlugin({
'process.env.NODE_ENV': '"production"'
}),
new CopyWebpackPlugin([
{ from: 'public', to: 'public' }
]),
new webpack.optimize.CommonsChunkPlugin({
names: ['vendor', 'manifest']
}),
]
});
}
sono anche su un Mac, in esecuzione angolare 2 beta.15 e webpack versione 1.12, al di sotto è il mio tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
},
"compileOnSave": false,
"exclude": [
"node_modules",
"typings/main",
"typings/main.d.ts"
]
}
Ehi @basart grazie per il tuo suggerimento, ho aggiornato la mia domanda con il mio tsconfig ... Non ho avuto quell'opzione impostata, ma non ha avuto un grosso impatto quando l'ho aggiunta anche se ... –