首页 > 解决方案 > NPM:意外的标识符

问题描述

我正在使用 Laravel 和 VueJS 开发一个小项目,但是当我想运行“npm run watch”来测试 vue 组件上的更改时,我遇到了一些问题。我在 Mac OS 10.14.6 上运行它。

我的节点版本是 v6.11.2,我的 npm 版本是 6.14.4。

这是我收到的错误:

/Applications/MAMP/htdocs/novellum/node_modules/chokidar/index.js:151
  async remove(item) {
        ^^^^^^

SyntaxError: Unexpected identifier
    at NativeCompileCache._moduleCompile (/Applications/MAMP/htdocs/novellum/node_modules/v8-compile-cache/v8-compile-cache.js:240:18)
    at Module._compile (/Applications/MAMP/htdocs/novellum/node_modules/v8-compile-cache/v8-compile-cache.js:186:36)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (/Applications/MAMP/htdocs/novellum/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object.<anonymous> (/Applications/MAMP/htdocs/novellum/node_modules/sass/sass.dart.js:98:17)
    at Module._compile (/Applications/MAMP/htdocs/novellum/node_modules/v8-compile-cache/v8-compile-cache.js:192:30)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (/Applications/MAMP/htdocs/novellum/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at implementation (/Applications/MAMP/htdocs/novellum/node_modules/laravel-mix/src/components/Sass.js:55:27)
    at implementation (/Applications/MAMP/htdocs/novellum/node_modules/laravel-mix/src/components/Preprocessor.js:130:61)
    at global.tap (/Applications/MAMP/htdocs/novellum/node_modules/laravel-mix/src/helpers.js:10:5)
    at Sass.loaderOptions (/Applications/MAMP/htdocs/novellum/node_modules/laravel-mix/src/components/Preprocessor.js:128:9)
    at extractPlugin (/Applications/MAMP/htdocs/novellum/node_modules/laravel-mix/src/components/Preprocessor.js:87:39)
    at global.tap (/Applications/MAMP/htdocs/novellum/node_modules/laravel-mix/src/helpers.js:10:5)
    at details.forEach (/Applications/MAMP/htdocs/novellum/node_modules/laravel-mix/src/components/Preprocessor.js:27:13)
    at Array.forEach (native)
    at Sass.webpackRules (/Applications/MAMP/htdocs/novellum/node_modules/laravel-mix/src/components/Preprocessor.js:22:22)
    at ComponentFactory.applyRules (/Applications/MAMP/htdocs/novellum/node_modules/laravel-mix/src/components/ComponentFactory.js:155:23)
    at Mix.listen.rules (/Applications/MAMP/htdocs/novellum/node_modules/laravel-mix/src/components/ComponentFactory.js:66:48)
    at events.(anonymous function).forEach.handler (/Applications/MAMP/htdocs/novellum/node_modules/laravel-mix/src/Dispatcher.js:34:47)
    at Array.forEach (native)
    at Dispatcher.fire (/Applications/MAMP/htdocs/novellum/node_modules/laravel-mix/src/Dispatcher.js:34:28)
    at Mix.dispatch (/Applications/MAMP/htdocs/novellum/node_modules/laravel-mix/src/Mix.js:118:25)
    at WebpackConfig.buildRules (/Applications/MAMP/htdocs/novellum/node_modules/laravel-mix/src/builder/WebpackConfig.js:90:13)
    at WebpackConfig.build (/Applications/MAMP/htdocs/novellum/node_modules/laravel-mix/src/builder/WebpackConfig.js:23:14)
    at Object.<anonymous> (/Applications/MAMP/htdocs/novellum/node_modules/laravel-mix/setup/webpack.config.js:29:38)
    at Module._compile (/Applications/MAMP/htdocs/novellum/node_modules/v8-compile-cache/v8-compile-cache.js:192:30)
    at Object.Module._extensions..js (module.js:579:10)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ development: `cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js "--watch"`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the @ development script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

有什么建议该怎么做吗?我已经删除了我的 node_modules 文件夹,我的 package-lock.json 并全新创建了它,卸载了 npm 并通过 brew 重新安装了它。

标签: laravelvue.jsnpm

解决方案


发生这种情况是因为您的 NodeJS 版本不支持 async/await 调用。您必须将 NodeJS 更新到最低 7.6,但我建议使用 v12.xx

检查https://nodejs.org/en/以了解如何在您的操作系统上下载和更新。


推荐阅读