@@ -30,41 +30,43 @@ export class DestCopy implements IBroccoliPlugin {
3030
3131 public rebuildChangedDirectories ( changedDirectories : string [ ] , platform : string ) : void {
3232 _ . each ( changedDirectories , changedDirectoryAbsolutePath => {
33- let pathToPackageJson = path . join ( changedDirectoryAbsolutePath , "package.json" ) ;
34- let packageJsonFiles = fs . existsSync ( pathToPackageJson ) ? [ pathToPackageJson ] : [ ] ;
35- let nodeModulesFolderPath = path . join ( changedDirectoryAbsolutePath , "node_modules" ) ;
36- packageJsonFiles = packageJsonFiles . concat ( this . enumeratePackageJsonFilesSync ( nodeModulesFolderPath ) ) ;
37-
38- _ . each ( packageJsonFiles , packageJsonFilePath => {
39- let fileContent = require ( packageJsonFilePath ) ;
40- let isPlugin = fileContent . nativescript ;
41-
42- if ( ! this . devDependencies [ fileContent . name ] ) { // Don't flatten dev dependencies
43-
44- let currentDependency = {
45- name : fileContent . name ,
46- version : fileContent . version ,
47- directory : path . dirname ( packageJsonFilePath ) ,
48- isPlugin : isPlugin
49- } ;
33+ if ( ! this . devDependencies [ path . basename ( changedDirectoryAbsolutePath ) ] ) {
34+ let pathToPackageJson = path . join ( changedDirectoryAbsolutePath , constants . PACKAGE_JSON_FILE_NAME ) ;
35+ let packageJsonFiles = fs . existsSync ( pathToPackageJson ) ? [ pathToPackageJson ] : [ ] ;
36+ let nodeModulesFolderPath = path . join ( changedDirectoryAbsolutePath , constants . NODE_MODULES_FOLDER_NAME ) ;
37+ packageJsonFiles = packageJsonFiles . concat ( this . enumeratePackageJsonFilesSync ( nodeModulesFolderPath ) ) ;
5038
51- let addedDependency = this . dependencies [ currentDependency . name ] ;
52- if ( addedDependency ) {
53- if ( semver . gt ( currentDependency . version , addedDependency . version ) ) {
54- let currentDependencyMajorVersion = semver . major ( currentDependency . version ) ;
55- let addedDependencyMajorVersion = semver . major ( addedDependency . version ) ;
56-
57- let message = `The depedency located at ${ addedDependency . directory } with version ${ addedDependency . version } will be replaced with dependency located at ${ currentDependency . directory } with version ${ currentDependency . version } ` ;
58- let logger = $injector . resolve ( "$logger" ) ;
59- currentDependencyMajorVersion === addedDependencyMajorVersion ? logger . out ( message ) : logger . warn ( message ) ;
39+ _ . each ( packageJsonFiles , packageJsonFilePath => {
40+ let fileContent = require ( packageJsonFilePath ) ;
6041
42+ if ( ! this . devDependencies [ fileContent . name ] ) { // Don't flatten dev dependencies
43+ let isPlugin = fileContent . nativescript ;
44+
45+ let currentDependency = {
46+ name : fileContent . name ,
47+ version : fileContent . version ,
48+ directory : path . dirname ( packageJsonFilePath ) ,
49+ isPlugin : isPlugin
50+ } ;
51+
52+ let addedDependency = this . dependencies [ currentDependency . name ] ;
53+ if ( addedDependency ) {
54+ if ( semver . gt ( currentDependency . version , addedDependency . version ) ) {
55+ let currentDependencyMajorVersion = semver . major ( currentDependency . version ) ;
56+ let addedDependencyMajorVersion = semver . major ( addedDependency . version ) ;
57+
58+ let message = `The depedency located at ${ addedDependency . directory } with version ${ addedDependency . version } will be replaced with dependency located at ${ currentDependency . directory } with version ${ currentDependency . version } ` ;
59+ let logger = $injector . resolve ( "$logger" ) ;
60+ currentDependencyMajorVersion === addedDependencyMajorVersion ? logger . out ( message ) : logger . warn ( message ) ;
61+
62+ this . dependencies [ currentDependency . name ] = currentDependency ;
63+ }
64+ } else {
6165 this . dependencies [ currentDependency . name ] = currentDependency ;
6266 }
63- } else {
64- this . dependencies [ currentDependency . name ] = currentDependency ;
6567 }
66- }
67- } ) ;
68+ } ) ;
69+ }
6870 } ) ;
6971
7072 _ . each ( this . dependencies , dependency => {
@@ -98,12 +100,12 @@ export class DestCopy implements IBroccoliPlugin {
98100 if ( fs . existsSync ( nodeModulesDirectoryPath ) ) {
99101 let contents = fs . readdirSync ( nodeModulesDirectoryPath ) ;
100102 for ( let i = 0 ; i < contents . length ; ++ i ) {
101- let packageJsonFilePath = path . join ( nodeModulesDirectoryPath , contents [ i ] , "package.json" ) ;
103+ let packageJsonFilePath = path . join ( nodeModulesDirectoryPath , contents [ i ] , constants . PACKAGE_JSON_FILE_NAME ) ;
102104 if ( fs . existsSync ( packageJsonFilePath ) ) {
103105 foundFiles . push ( packageJsonFilePath ) ;
104106 }
105107
106- var directoryPath = path . join ( nodeModulesDirectoryPath , contents [ i ] , "node_modules" ) ;
108+ var directoryPath = path . join ( nodeModulesDirectoryPath , contents [ i ] , constants . NODE_MODULES_FOLDER_NAME ) ;
107109 if ( fs . existsSync ( directoryPath ) ) {
108110 this . enumeratePackageJsonFilesSync ( directoryPath , foundFiles ) ;
109111 }
0 commit comments