You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux执行Laravel Mix的npm run dev报SyntaxError: missing )错误

问题描述

预发布Linux服务器上执行npm run dev/npm run prod/npm run watch命令失败,报错信息如下:

npm run production

glob error [Error: EACCES: permission denied, scandir '/root/.npm/_logs'] {
  errno: -13,
  code: 'EACCES',
  syscall: 'scandir',
  path: '/root/.npm/_logs'
}

> production
> mix --production

/var/www/html/preprodCerf2021/node_modules/laravel-mix/bin/cli.js:2
basedir=$(dirname "$(echo "$0" | sed -e 's,\,/,g')")
          ^^^^^^^

SyntaxError: missing ) after argument list
    at Object.compileFunction (node:vm:352:18)
    at wrapSafe (node:internal/modules/cjs/loader:1031:15)
    at Module._compile (node:internal/modules/cjs/loader:1065:27)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:79:12)
    at node:internal/main/run_main_module:17:47
环境与配置说明
  • 服务端Node.js版本:16.8.0
  • 服务端npm版本:7.21.0
  • 相同代码在Windows开发环境可正常编译
  • 项目文件所有权归属www-data:www-data,权限列表如下:
-rwxr-xr-x   1 www-data www-data    817 sept. 30 10:06 package.json
-rw-r--r--   1 www-data www-data 820729 sept. 30 10:32 package-lock.json
-rwxr-xr-x   1 www-data www-data   1202 janv. 22  2021 phpunit.xml
drwxr-xr-x   8 www-data www-data   4096 sept.  8 16:02 public
-rwxr-xr-x   1 www-data www-data   3780 janv. 22  2021 README.md
drwxr-xr-x   8 www-data www-data   4096 août  31 12:55 resources
drwxr-xr-x   2 www-data www-data   4096 janv. 28  2021 routes
-rwxr-xr-x   1 www-data www-data    563 janv. 22  2021 server.php
drwxrwxr-x   6 www-data www-data   4096 mars   5  2021 storage
-rwxr-xr-x   1 www-data www-data    181 janv. 22  2021 .styleci.yml
-rwxr-xr-x   1 www-data www-data    548 sept.  9 15:36 tailwind.config.js
drwxr-xr-x   4 www-data www-data   4096 janv. 28  2021 tests
drwxr-xr-x  61 www-data www-data   4096 août  31 12:56 vendor
-rwxr-xr-x   1 www-data www-data    669 sept. 30 11:58 webpack.mix.js
解决方案

第一步:修复权限报错

报错中EACCES: permission denied, scandir '/root/.npm/_logs'是因为使用root账号执行npm命令,而项目文件归属www-data用户,执行用户不匹配导致的权限问题。
切换到项目归属用户执行npm命令即可:

sudo -u www-data npm run production

如果仍有缓存权限报错,可手动修正npm缓存目录权限:

sudo chown -R www-data:www-data /var/www/.npm
# 若上述路径不存在,可临时指定缓存目录执行命令
sudo -u www-data npm run production --cache /tmp/npm-cache

第二步:修复Laravel Mix语法报错

SyntaxError: missing ) after argument list报错是因为Shell脚本被Node.js当做JS代码解析,通常是Windows环境下安装的node_modules直接上传到Linux,跨环境二进制兼容问题导致的。
清理原有依赖后重新在Linux环境安装即可:

  1. 删除现有node_modules和锁文件
sudo rm -rf node_modules package-lock.json
  1. 切换到www-data用户重新安装依赖
sudo -u www-data npm install
  1. 重新执行编译命令
sudo -u www-data npm run production

内容的提问来源于stack exchange,提问作者Eloise85

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 14:45:01