Laravel mix npm run dev on linux在参数列表后产生SyntaxError: missing



我不能在我的linux服务器上使用npm run dev|prod|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

nodeJs是最新的v 16.8.0和npm v 7.21.0我的编译工作完美在我的windows开发机器。

这是文件的所有权:

-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

我也遇到了类似的问题,我想作为根用户运行npm但文件所有权与不同的用户。您可以尝试以下方法之一:

  1. 尝试使用www-data用户
  2. 运行npm
  3. 将文件的所有权更改为sudoable用户
    # login as a user that has sudo access and change file ownership
    sudo chown -R myuser:myuser /path/to/project/
    # run npm commands as myuser
    npm install && npm run production
    # change the permissions to previous state
    sudo chown -R www-data:www-data /path/to/project/
    
  4. 将文件的所有权更改为root用户(到目前为止,这对我不起作用,但可能对您有效)
    # enter sudo mode and change ownership to root
    sudo su
    chown -R root:root /path/to/project/
    # run npm commands as root user
    npm install && npm run production
    # change the permissions to previous state
    chown -R www-data:www-data /path/to/project/
    # exit sudo mode
    exit
    

最后我尝试成功了,npm很神秘

rm node_modules -rf && npm install

最新更新