@@ -28,6 +28,10 @@ import {
28
28
} from "../../common/declarations" ;
29
29
import { ICleanupService } from "../../definitions/cleanup-service" ;
30
30
import { injector } from "../../common/yok" ;
31
+ import {
32
+ resolvePackagePath ,
33
+ resolvePackageJSONPath ,
34
+ } from "../../helpers/package-path-helper" ;
31
35
32
36
// todo: move out of here
33
37
interface IWebpackMessage < T = any > {
@@ -71,7 +75,7 @@ export class WebpackCompilerService
71
75
) : Promise < any > {
72
76
return new Promise ( async ( resolve , reject ) => {
73
77
if ( this . webpackProcesses [ platformData . platformNameLowerCase ] ) {
74
- resolve ( ) ;
78
+ resolve ( void 0 ) ;
75
79
return ;
76
80
}
77
81
@@ -584,45 +588,38 @@ export class WebpackCompilerService
584
588
585
589
private getWebpackExecutablePath ( projectData : IProjectData ) : string {
586
590
if ( this . isWebpack5 ( projectData ) ) {
587
- const packagePath = require . resolve (
588
- "@nativescript/webpack/package.json" ,
589
- {
590
- paths : [ projectData . projectDir ] ,
591
- }
592
- ) ;
591
+ const packagePath = resolvePackagePath ( "@nativescript/webpack" , {
592
+ paths : [ projectData . projectDir ] ,
593
+ } ) ;
593
594
594
- return path . resolve (
595
- packagePath . replace ( "package.json" , "" ) ,
596
- "dist" ,
597
- "bin" ,
598
- "index.js"
599
- ) ;
595
+ if ( packagePath ) {
596
+ return path . resolve ( packagePath , "dist" , "bin" , "index.js" ) ;
597
+ }
600
598
}
601
599
602
- return path . join (
603
- projectData . projectDir ,
604
- "node_modules" ,
605
- "webpack" ,
606
- "bin" ,
607
- "webpack.js"
608
- ) ;
600
+ const packagePath = resolvePackagePath ( "webpack" , {
601
+ paths : [ projectData . projectDir ] ,
602
+ } ) ;
603
+
604
+ if ( ! packagePath ) {
605
+ return "" ;
606
+ }
607
+
608
+ return path . resolve ( packagePath , "bin" , "webpack.js" ) ;
609
609
}
610
610
611
611
private isWebpack5 ( projectData : IProjectData ) : boolean {
612
- try {
613
- const packagePath = require . resolve (
614
- "@nativescript/webpack/package.json" ,
615
- {
616
- paths : [ projectData . projectDir ] ,
617
- }
618
- ) ;
619
- const ver = semver . coerce ( require ( packagePath ) . version ) ;
612
+ const packageJSONPath = resolvePackageJSONPath ( "@nativescript/webpack" , {
613
+ paths : [ projectData . projectDir ] ,
614
+ } ) ;
615
+
616
+ if ( packageJSONPath ) {
617
+ const packageData = this . $fs . readJson ( packageJSONPath ) ;
618
+ const ver = semver . coerce ( packageData . version ) ;
620
619
621
620
if ( semver . satisfies ( ver , ">= 5.0.0" ) ) {
622
621
return true ;
623
622
}
624
- } catch ( ignore ) {
625
- //
626
623
}
627
624
628
625
return false ;
0 commit comments