0

Our laravel 8/vuejs 2 app at some moment raised critical error :

 UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by

In the project several developers work under ubuntu/windows and at my side(ubuntu) running commands: npm install npm audit fix and $ npm run watch-poll I got some warnings/errors:

serge@AtHome:/mnt/_work_sdb8/wwwroot/lar/StreamgeeksRebrandedApp/streamgeeks-rebranded$ npm install

up to date, audited 875 packages in 3s

86 packages are looking for funding
  run `npm fund` for details

8 vulnerabilities (5 high, 3 critical)

To address issues that do not require attention, run:
  npm audit fix

To address all issues possible (including breaking changes), run:
  npm audit fix --force

Some issues need review, and may require choosing
a different dependency.

Run `npm audit` for details.
serge@AtHome:/mnt/_work_sdb8/wwwroot/lar/StreamgeeksRebrandedApp/streamgeeks-rebranded$ npm audit fix

up to date, audited 875 packages in 2s

86 packages are looking for funding
  run `npm fund` for details

# npm audit report

axios  <0.21.1
Severity: high
Server-Side Request Forgery - https://npmjs.com/advisories/1594
No fix available
node_modules/vue-upload-multiple-image/node_modules/axios
  vue-upload-multiple-image  *
  Depends on vulnerable versions of axios
  node_modules/vue-upload-multiple-image

object-path  < 0.11.5
Severity: high
Prototype Pollution - https://npmjs.com/advisories/1573
fix available via `npm audit fix --force`
Will install resolve-url-loader@4.0.0, which is a breaking change
node_modules/object-path
  adjust-sourcemap-loader  0.1.0 - 2.0.0
  Depends on vulnerable versions of object-path
  node_modules/adjust-sourcemap-loader
    resolve-url-loader  0.0.1-experiment-postcss || 2.0.0 - 3.1.1 || 4.0.0-alpha.1 - 4.0.0-beta.2
    Depends on vulnerable versions of adjust-sourcemap-loader
    node_modules/resolve-url-loader

swiper  <6.5.1
Severity: critical
Prototype Pollution - https://npmjs.com/advisories/1694
fix available via `npm audit fix`
node_modules/swiper
  vue-awesome-swiper  *
  Depends on vulnerable versions of swiper
  node_modules/vue-awesome-swiper
    vue-image-lightbox-carousel  *
    Depends on vulnerable versions of vue-awesome-swiper
    node_modules/vue-image-lightbox-carousel

8 vulnerabilities (5 high, 3 critical)

To address issues that do not require attention, run:
  npm audit fix

To address all issues possible (including breaking changes), run:
  npm audit fix --force

Some issues need review, and may require choosing
a different dependency.
serge@AtHome:/mnt/_work_sdb8/wwwroot/lar/StreamgeeksRebrandedApp/streamgeeks-rebranded$ npm run watch-poll

> watch-poll
> mix watch -- --watch-options-poll=1000


● Mix █████████████████████████ emitting (98%)
 after emit

: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.

Recommendation: math.div(1, $rfs-rem-value)

More info and automated migrator: https://sass-lang.com/d/slash-div

   ╷
51 │   $rfs-base-font-size: math.div($rfs-base-font-size, $rfs-base-font-size * 0 + 1 / $rfs-rem-value);
   │                                                                                ^^^^^^^^^^^^^^^^^^
   ╵
    node_modules/bootstrap/scss/vendor/_rfs.scss 51:80  @import
    node_modules/bootstrap/scss/_mixins.scss 6:9        @import
    node_modules/bootstrap/scss/bootstrap.scss 10:9     @import
    stdin 5:9                                           root stylesheet

: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.

Recommendation: math.div(1, $rfs-rem-value)

More info and automated migrator: https://sass-lang.com/d/slash-div

   ╷
87 │       $fs: math.div($fs, $fs * 0 + 1 / $rfs-rem-value);
   │                                    ^^^^^^^^^^^^^^^^^^
   ╵
    node_modules/bootstrap/scss/vendor/_rfs.scss 87:36  rfs()
    node_modules/bootstrap/scss/vendor/_rfs.scss 201:3  font-size()
    node_modules/bootstrap/scss/_reboot.scss 49:3       @import
    node_modules/bootstrap/scss/bootstrap.scss 12:9     @import
    stdin 5:9                                           root stylesheet

: math.div() will only support number arguments in a future release.
Use list.slash() instead for a slash separator.

    ╷
120 │         background: $custom-select-background, $custom-select-bg escape-svg($icon) math.div($custom-select-feedback-icon-position, $custom-select-feedback-icon-size) no-repeat;
    │                                                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ╵
    node_modules/bootstrap/scss/mixins/_forms.scss 120:84  @content
    node_modules/bootstrap/scss/mixins/_forms.scss 37:7    form-validation-state-selector()
    node_modules/bootstrap/scss/mixins/_forms.scss 115:5   form-validation-state()
    node_modules/bootstrap/scss/_forms.scss 263:3          @import
    node_modules/bootstrap/scss/bootstrap.scss 18:9        @import
    stdin 5:9                                              root stylesheet

(node:25343) UnhandledPromiseRejectionWarning: Error: ENOENT: no such file or directory, lstat '/mnt/_work_sdb8/wwwroot/lar/StreamgeeksRebrandedApp/streamgeeks-rebranded/vendor/proengsoft/laravel-jsvalidation/resources/views'
    at Object.lstatSync (fs.js:1077:3)
    at Object.lstatSync (/mnt/_work_sdb8/wwwroot/lar/StreamgeeksRebrandedApp/streamgeeks-rebranded/node_modules/graceful-fs/polyfills.js:311:34)
    at statFunc (/mnt/_work_sdb8/wwwroot/lar/StreamgeeksRebrandedApp/streamgeeks-rebranded/node_modules/fs-extra/lib/util/stat.js:24:20)
    at getStatsSync (/mnt/_work_sdb8/wwwroot/lar/StreamgeeksRebrandedApp/streamgeeks-rebranded/node_modules/fs-extra/lib/util/stat.js:25:19)
    at Object.checkPathsSync (/mnt/_work_sdb8/wwwroot/lar/StreamgeeksRebrandedApp/streamgeeks-rebranded/node_modules/fs-extra/lib/util/stat.js:67:33)
    at Object.copySync (/mnt/_work_sdb8/wwwroot/lar/StreamgeeksRebrandedApp/streamgeeks-rebranded/node_modules/fs-extra/lib/copy-sync/copy-sync.js:24:38)
    at File.copyTo (/mnt/_work_sdb8/wwwroot/lar/StreamgeeksRebrandedApp/streamgeeks-rebranded/node_modules/laravel-mix/src/File.js:245:12)
    at FileCollection.copyTo (/mnt/_work_sdb8/wwwroot/lar/StreamgeeksRebrandedApp/streamgeeks-rebranded/node_modules/laravel-mix/src/FileCollection.js:83:17)
    at /mnt/_work_sdb8/wwwroot/lar/StreamgeeksRebrandedApp/streamgeeks-rebranded/node_modules/laravel-mix/src/FileCollection.js:77:38
    at Array.forEach (<anonymous>)
    at FileCollection.copyTo (/mnt/_work_sdb8/wwwroot/lar/StreamgeeksRebrandedApp/streamgeeks-rebranded/node_modules/laravel-mix/src/FileCollection.js:77:17)
    at CopyFilesTask.run (/mnt/_work_sdb8/wwwroot/lar/StreamgeeksRebrandedApp/streamgeeks-rebranded/node_modules/laravel-mix/src/tasks/CopyFilesTask.js:16:20)
    at CustomTasksPlugin.runTask (/mnt/_work_sdb8/wwwroot/lar/StreamgeeksRebrandedApp/streamgeeks-rebranded/node_modules/laravel-mix/src/webpackPlugins/CustomTasksPlugin.js:46:36)
    at CustomTasksPlugin.runTasks (/mnt/_work_sdb8/wwwroot/lar/StreamgeeksRebrandedApp/streamgeeks-rebranded/node_modules/laravel-mix/src/webpackPlugins/CustomTasksPlugin.js:87:21)
    at /mnt/_work_sdb8/wwwroot/lar/StreamgeeksRebrandedApp/streamgeeks-rebranded/node_modules/laravel-mix/src/webpackPlugins/CustomTasksPlugin.js:20:18
    at Hook.eval [as callAsync] (eval at create (/mnt/_work_sdb8/wwwroot/lar/StreamgeeksRebrandedApp/streamgeeks-rebranded/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:73:1)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:25343) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)

Critical Error at the end is described at What is an unhandled promise rejection? but I failed to find source of this error. Please any hints how this error could be located and fixed?

$ node -v
v14.16.0
$ npm -v
7.19.0
$ uname -a
Linux AtHome 4.15.0-128-generic #131-Ubuntu SMP Wed Dec 9 06:57:35 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Thanks!

mstdmstd
  • 2,195
  • 17
  • 63
  • 140
  • 1
    about error looks like there is something with `laravel-jsvalidation` package. Check wherever you used that package – Mohammad Mirsafaei Jul 02 '21 at 11:05
  • Yes, used. But now looking at webpack.mix.js I see lines : mix .copy( "vendor/proengsoft/laravel-jsvalidation/resources/views", "resources/views/vendor/jsvalidation" ) .copy( "vendor/proengsoft/laravel-jsvalidation/public", "public/vendor/jsvalidation" ); Does this package need these lines? – mstdmstd Jul 02 '21 at 11:17
  • 1
    Yes I think cause its doc says it's needed. meanwhile, did you installed that package on your local? or did you run `composer install` or `composer update`? and also check out that path and see if that folder exists or not. – Mohammad Mirsafaei Jul 02 '21 at 11:36
  • I removed this line with mix .copy( "vendor/proengsoft/laravel-jsvalidation/resources/views", ... from webpack.mix.js and run composer install. Looks like all works ok, now. Not sure if in webpack.mix.js we need to make some copy of proengsoft files? have proengsoft docs reference to this somewhere? On this project worked several developers, so it is messy in some places – mstdmstd Jul 03 '21 at 03:28
  • 1
    here is installation document: https://github.com/proengsoft/laravel-jsvalidation/wiki/Installation . based on your laravel version select one and checkout if it is needed. I checked for laravel 7 – Mohammad Mirsafaei Jul 03 '21 at 04:56
  • I have laravel 8. I suppose I need to read installation guide for 7.x? – mstdmstd Jul 03 '21 at 06:51
  • 1
    Yes, they mostly the same – Mohammad Mirsafaei Jul 03 '21 at 08:05

0 Answers0