Repository: LycheeOrg/Lychee (language: php)

Issue:
Missing package.json
### Detailed description of the problem [REQUIRED]
When I pull HEAD of master, git hook fails on NPM error that package.json does not exist.  I confirmed that file does not exist at the root of my project directory, and it seems to no longer exist at project root on github.
The path to the Lychee directory in the error below are correct.

```
npm install --no-audit --no-fund
npm ERR! code ENOENT
npm ERR! syscall open
npm ERR! path /mnt/server/Lychee/package.json
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, open '/mnt/server/Lychee/package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
```

### Steps to reproduce the issue
**Steps to reproduce the behavior:**
1. git pull origin master
2. git pull hook will run, composer update etc.
3. When hook gets to npm step, it fails with above error.

### Output of the diagnostics  [REQUIRED]



    Diagnostics
    -------
    Warning: Dropbox import not working. dropbox_key is empty.




    System Information
    --------------
    Lychee Version (git):                    local (5d57c22) -- Could not compare.
    DB Version:                              4.13.0
    
    composer install:                        dev
    APP_ENV:                                 production
    APP_DEBUG:                               false
    
    System:                                  Linux
    PHP Version:                             8.2.13
    PHP User agent:                          Lychee/4 (https://lycheeorg.github.io/)
    Timezone:                                America/Los_Angeles
    Max uploaded file size:                  200M
    Max post size:                           200M
    Max execution time:                      200
    MySQL Version:                           11.1.3-MariaDB-1:11.1.3+maria~ubu2304
    
    exec() Available:                        yes
    Imagick Available:                       1
    Imagick Enabled:                         1
    Imagick Version:                         1691
    GD Version:                              2.3.3
    Number of foreign key:                   74 found.




    Config Information
    --------------
    version:                                 041300
    check_for_updates:                       1
    sorting_photos_col:                      created_at
    sorting_photos_order:                    DESC
    sorting_albums_col:                      max_taken_at
    sorting_albums_order:                    DESC
    imagick:                                 1
    skip_duplicates:                         1
    small_max_width:                         0
    small_max_height:                        360
    medium_max_width:                        1920
    medium_max_height:                       1080
    lang:                                    en
    image_overlay_type:                      none
    default_license:                         CC-BY-NC-ND-4.0
    compression_quality:                     90
    grants_full_photo_access:                1
    delete_imported:                         1
    mod_frame_enabled:                       1
    mod_frame_refresh:                       30
    thumb_2x:                                1
    small_2x:                                1
    medium_2x:                               1
    landing_page_enable:                     1
    site_owner:                              Vincent Juliano
    landing_title:                           Life on 35mm
    landing_subtitle:                        Click top right to continue.  Next page top left to login
    sm_facebook_url:                         
    sm_flickr_url:                           
    sm_twitter_url:                          
    sm_instagram_url:                        
    sm_youtube_url:                          
    landing_background:                      uploads/medium/5c1b761af703440951cec74b64b5e222.jpeg
    site_title:                              Vince Juliano's Photo Gallery
    footer_show_copyright:                   1
    site_copyright_begin:                    2021
    site_copyright_end:                      2023
    footer_additional_text:                  "Alex's Photos" copyright Alex Panicacci 2023
    footer_show_social_media:                0
    public_search:                           0
    SL_enable:                               0
    SL_for_admin:                            0
    recent_age:                              60
    grants_download:                         1
    photos_wraparound:                       1
    map_display:                             1
    zip64:                                   1
    map_display_public:                      1
    map_provider:                            Wikimedia
    force_32bit_ids:                         0
    map_include_subalbums:                   1
    update_check_every_days:                 3
    has_exiftool:                            1
    share_button_visible:                    1
    import_via_symlink:                      0
    has_ffmpeg:                              1
    location_decoding:                       1
    location_decoding_timeout:               30
    location_show:                           1
    location_show_public:                    1
    rss_enable:                              0
    rss_recent_days:                         7
    rss_max_items:                           100
    prefer_available_xmp_metadata:           1
    editor_enabled:                          1
    lossless_optimization:                   1
    swipe_tolerance_x:                       150
    swipe_tolerance_y:                       250
    local_takestamp_video_formats:           .avi|.mov
    log_max_num_line:                        10000
    unlock_password_photos_with_url_param:   0
    nsfw_visible:                            0
    nsfw_blur:                               0
    nsfw_warning:                            0
    nsfw_warning_admin:                      0
    nsfw_banner_override:                    
    map_display_direction:                   1
    album_subtitle_type:                     oldstyle
    upload_processing_limit:                 4
    public_photos_hidden:                    1
    new_photos_notification:                 1
    legacy_id_redirection:                   1
    zip_deflate_level:                       6
    SA_enabled:                              1
    default_album_protection:                1
    allow_username_change:                   1
    album_decoration:                        layers
    album_decoration_orientation:            row
    auto_fix_orientation:                    1
    use_job_queues:                          0
    random_album_id:                         starred
    use_last_modified_date_when_no_exif_date: 0
    ffmpeg_path:                             /usr/bin/ffmpeg
    ffprobe_path:                            /usr/bin/ffprobe
    layout:                                  justified

### Browser and system
Ubuntu 23.10

Missing package.json
### Detailed description of the problem [REQUIRED]
When I pull HEAD of master, git hook fails on NPM error that package.json does not exist.  I confirmed that file does not exist at the root of my project directory, and it seems to no longer exist at project root on github.
The path to the Lychee directory in the error below are correct.

```
npm install --no-audit --no-fund
npm ERR! code ENOENT
npm ERR! syscall open
npm ERR! path /mnt/server/Lychee/package.json
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, open '/mnt/server/Lychee/package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
```

### Steps to reproduce the issue
**Steps to reproduce the behavior:**
1. git pull origin master
2. git pull hook will run, composer update etc.
3. When hook gets to npm step, it fails with above error.

### Output of the diagnostics  [REQUIRED]



    Diagnostics
    -------
    Warning: Dropbox import not working. dropbox_key is empty.




    System Information
    --------------
    Lychee Version (git):                    local (5d57c22) -- Could not compare.
    DB Version:                              4.13.0
    
    composer install:                        dev
    APP_ENV:                                 production
    APP_DEBUG:                               false
    
    System:                                  Linux
    PHP Version:                             8.2.13
    PHP User agent:                          Lychee/4 (https://lycheeorg.github.io/)
    Timezone:                                America/Los_Angeles
    Max uploaded file size:                  200M
    Max post size:                           200M
    Max execution time:                      200
    MySQL Version:                           11.1.3-MariaDB-1:11.1.3+maria~ubu2304
    
    exec() Available:                        yes
    Imagick Available:                       1
    Imagick Enabled:                         1
    Imagick Version:                         1691
    GD Version:                              2.3.3
    Number of foreign key:                   74 found.




    Config Information
    --------------
    version:                                 041300
    check_for_updates:                       1
    sorting_photos_col:                      created_at
    sorting_photos_order:                    DESC
    sorting_albums_col:                      max_taken_at
    sorting_albums_order:                    DESC
    imagick:                                 1
    skip_duplicates:                         1
    small_max_width:                         0
    small_max_height:                        360
    medium_max_width:                        1920
    medium_max_height:                       1080
    lang:                                    en
    image_overlay_type:                      none
    default_license:                         CC-BY-NC-ND-4.0
    compression_quality:                     90
    grants_full_photo_access:                1
    delete_imported:                         1
    mod_frame_enabled:                       1
    mod_frame_refresh:                       30
    thumb_2x:                                1
    small_2x:                                1
    medium_2x:                               1
    landing_page_enable:                     1
    site_owner:                              Vincent Juliano
    landing_title:                           Life on 35mm
    landing_subtitle:                        Click top right to continue.  Next page top left to login
    sm_facebook_url:                         
    sm_flickr_url:                           
    sm_twitter_url:                          
    sm_instagram_url:                        
    sm_youtube_url:                          
    landing_background:                      uploads/medium/5c1b761af703440951cec74b64b5e222.jpeg
    site_title:                              Vince Juliano's Photo Gallery
    footer_show_copyright:                   1
    site_copyright_begin:                    2021
    site_copyright_end:                      2023
    footer_additional_text:                  "Alex's Photos" copyright Alex Panicacci 2023
    footer_show_social_media:                0
    public_search:                           0
    SL_enable:                               0
    SL_for_admin:                            0
    recent_age:                              60
    grants_download:                         1
    photos_wraparound:                       1
    map_display:                             1
    zip64:                                   1
    map_display_public:                      1
    map_provider:                            Wikimedia
    force_32bit_ids:                         0
    map_include_subalbums:                   1
    update_check_every_days:                 3
    has_exiftool:                            1
    share_button_visible:                    1
    import_via_symlink:                      0
    has_ffmpeg:                              1
    location_decoding:                       1
    location_decoding_timeout:               30
    location_show:                           1
    location_show_public:                    1
    rss_enable:                              0
    rss_recent_days:                         7
    rss_max_items:                           100
    prefer_available_xmp_metadata:           1
    editor_enabled:                          1
    lossless_optimization:                   1
    swipe_tolerance_x:                       150
    swipe_tolerance_y:                       250
    local_takestamp_video_formats:           .avi|.mov
    log_max_num_line:                        10000
    unlock_password_photos_with_url_param:   0
    nsfw_visible:                            0
    nsfw_blur:                               0
    nsfw_warning:                            0
    nsfw_warning_admin:                      0
    nsfw_banner_override:                    
    map_display_direction:                   1
    album_subtitle_type:                     oldstyle
    upload_processing_limit:                 4
    public_photos_hidden:                    1
    new_photos_notification:                 1
    legacy_id_redirection:                   1
    zip_deflate_level:                       6
    SA_enabled:                              1
    default_album_protection:                1
    allow_username_change:                   1
    album_decoration:                        layers
    album_decoration_orientation:            row
    auto_fix_orientation:                    1
    use_job_queues:                          0
    random_album_id:                         starred
    use_last_modified_date_when_no_exif_date: 0
    ffmpeg_path:                             /usr/bin/ffmpeg
    ffprobe_path:                            /usr/bin/ffprobe
    layout:                                  justified

### Browser and system
Ubuntu 23.10



Discussion / hints:

Fix patch:
diff --git a/scripts/post-merge b/scripts/post-merge
index e4a84fd3d08..409b2c78f42 100755
--- a/scripts/post-merge
+++ b/scripts/post-merge
@@ -16,10 +16,6 @@ else
         printf "\n${ORANGE}Dev mode detected${NO_COLOR}\n"
         echo "composer install"
         composer install
-        if command -v npm > /dev/null; then
-        	echo "npm install --no-audit --no-fund"
-        	npm install --no-audit --no-fund
-        fi
     else
         printf "\n${ORANGE}--no-dev mode detected${NO_COLOR}\n"
         echo "composer install --no-dev --prefer-dist"


Test patch: