1
1
import * as webpack from 'webpack' ;
2
- import * as path from 'path ' ;
3
- import * as rimraf from 'rimraf ' ;
2
+ import { XI18nWebpackConfig } from '../models/webpack-xi18n-config ' ;
3
+ import { getAppFromConfig } from '../utilities/app-utils ' ;
4
4
5
5
const Task = require ( '../ember-cli/lib/models/task' ) ;
6
+ const MemoryFS = require ( 'memory-fs' ) ;
6
7
7
- import { XI18nWebpackConfig } from '../models/webpack-xi18n-config' ;
8
- import { getAppFromConfig } from '../utilities/app-utils' ;
9
8
10
9
export const Extracti18nTask = Task . extend ( {
11
10
run : function ( runTaskOptions : any ) {
12
-
13
- const project = this . project ;
14
-
15
11
const appConfig = getAppFromConfig ( runTaskOptions . app ) ;
16
12
17
- const buildDir = '.tmp' ;
18
- const genDir = runTaskOptions . outputPath || appConfig . root ;
19
-
20
13
const config = new XI18nWebpackConfig ( {
21
- genDir,
22
- buildDir,
14
+ genDir : runTaskOptions . outputPath || appConfig . root ,
15
+ buildDir : '.tmp' ,
23
16
i18nFormat : runTaskOptions . i18nFormat ,
24
17
locale : runTaskOptions . locale ,
25
18
outFile : runTaskOptions . outFile ,
@@ -29,6 +22,7 @@ export const Extracti18nTask = Task.extend({
29
22
} , appConfig ) . buildConfig ( ) ;
30
23
31
24
const webpackCompiler = webpack ( config ) ;
25
+ webpackCompiler . outputFileSystem = new MemoryFS ( ) ;
32
26
33
27
return new Promise ( ( resolve , reject ) => {
34
28
const callback : webpack . compiler . CompilerCallback = ( err , stats ) => {
@@ -45,15 +39,11 @@ export const Extracti18nTask = Task.extend({
45
39
46
40
webpackCompiler . run ( callback ) ;
47
41
} )
48
- . then ( ( ) => {
49
- // Deletes temporary build folder
50
- rimraf . sync ( path . resolve ( project . root , buildDir ) ) ;
51
- } )
52
- . catch ( ( err : Error ) => {
53
- if ( err ) {
54
- this . ui . writeError ( '\nAn error occured during the i18n extraction:\n'
55
- + ( ( err && err . stack ) || err ) ) ;
56
- }
57
- } ) ;
42
+ . catch ( ( err : Error ) => {
43
+ if ( err ) {
44
+ this . ui . writeError ( '\nAn error occured during the i18n extraction:\n'
45
+ + ( ( err && err . stack ) || err ) ) ;
46
+ }
47
+ } ) ;
58
48
}
59
49
} ) ;
0 commit comments