@@ -24,29 +24,42 @@ function generateHookName(pkg, hook) {
24
24
}
25
25
26
26
function findProjectDir ( pkgdir ) {
27
- if ( process . env . INIT_CWD ) {
27
+ if ( process . env . INIT_CWD && _isNativeScriptAppRoot ( process . env . INIT_CWD ) ) {
28
28
return process . env . INIT_CWD ;
29
29
}
30
30
31
31
var candidateDir = pkgdir ;
32
+ var oldCandidateDir = null ;
32
33
33
34
while ( true ) {
34
- var oldCandidateDir = candidateDir ;
35
35
candidateDir = path . dirname ( candidateDir ) ;
36
+ if ( oldCandidateDir === candidateDir ) {
37
+ return ;
38
+ }
39
+
36
40
if ( path . basename ( candidateDir ) === 'node_modules' ) {
37
41
continue ;
38
42
}
39
- var packageJsonFile = path . join ( candidateDir , 'package.json' ) ;
40
- if ( fs . existsSync ( packageJsonFile ) ) {
43
+
44
+ if ( _isNativeScriptAppRoot ( candidateDir ) ) {
41
45
return candidateDir ;
42
46
}
43
47
44
- if ( oldCandidateDir === candidateDir ) {
45
- return ;
46
- }
48
+ oldCandidateDir = candidateDir ;
47
49
}
48
50
}
49
51
52
+ function _isNativeScriptAppRoot ( dir ) {
53
+ var isNativeScriptAppRoot = false ;
54
+ var packageJsonFile = path . join ( dir , 'package.json' ) ;
55
+ if ( fs . existsSync ( packageJsonFile ) ) {
56
+ var packageJsonContent = require ( packageJsonFile ) ;
57
+ isNativeScriptAppRoot = ! ! packageJsonContent . nativescript && ! ! packageJsonContent . nativescript . id ;
58
+ }
59
+
60
+ return isNativeScriptAppRoot ;
61
+ }
62
+
50
63
function forEachHook ( pkgdir , callback ) {
51
64
var pkg = require ( path . join ( pkgdir , 'package.json' ) ) ;
52
65
var ns = pkg . nativescript ;
0 commit comments