带有webpack encore的Symfony 4.1在使用npm / yarn运行时出现错误
我遵循了symfony官方文档中提到的步骤,通过composer require webpack-encore
成功安装后,并且在npm install
之后,我尝试了npm run dev
并出现以下错误,使用{ {1}}。
我正在使用debian 9
yarn encore dev
VIA NPM:
kamii@kamii-workstation:~$ node -v
v10.9.0
kamii@kamii-workstation:~$ npm -v
6.4.1
kamii@kamii-workstation:~$ yarn -v
1.9.4
通过纱
kamii@kamii-workstation:/media/disks/Development/dev_lab_gen/exim_pos$ npm run dev
> @ dev /media/disks/Development/dev_lab_gen/exim_pos
> encore dev
sh: 1: encore: Permission denied
npm ERR! code ELIFECYCLE
npm ERR! errno 126
npm ERR! @ dev: `encore dev`
npm ERR! Exit status 126
npm ERR!
npm ERR! Failed at the @ dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/kamii/.npm/_logs/2018-09-03T20_11_01_530Z-debug.log
这是NPM日志文件
kamii@kamii-workstation:/media/disks/Development/dev_lab_gen/exim_pos$ yarn encore dev
yarn run v1.9.4
$ /media/disks/Development/dev_lab_gen/exim_pos/node_modules/.bin/encore dev
/bin/sh: 1: /media/disks/Development/dev_lab_gen/exim_pos/node_modules/.bin/encore: Permission denied
error Command failed with exit code 126.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
答案 0 :(得分:1)
尝试一下:
./node_modules/.bin/encore dev-server
如果是这样,您可能已在全局安装了Encore,因此在运行它时,您无权在全局文件夹中进行安装。
写下echo $PATH
并检查是否在这里。
答案 1 :(得分:1)
默认情况下,我在一个挂有noexec
标志的分区上。在exec
中显式添加/etc/fstab
标志解决了我的问题,甚至还解决了gulp
的其他一些权限问题。
用户安装的分区,例如当使用/ etc / fstab文件中的“用户”或“用户”挂载选项时,出于安全原因,默认情况下使用“ noexec”挂载选项来完成。这意味着将拒绝用于执行的内存映射(mmap)文件。另一个原因可能是缺少对共享可写mmap的内核支持,该支持已添加到Linux内核2.6.26。
解决方案:在安装选项的末尾添加“ exec”安装选项。重要的是,该选项必须是最后一个选项,否则其他安装选项可能会过度判断其效果。但是,请注意,Wine并非旨在直接从Windows分区运行任意应用程序。为此,必须先通过Wine将Windows应用程序安装到Windows分区上。
答案 2 :(得分:0)
我将依靠@Jose的评论并分享一些常见的陷阱:
在安装encore
时,您是否放置了-g
(用于全局)标志?如果没有,那可能就是原因。
另一件事是您的encore
确实是全局安装的(可能是/usr/local/bin
),但是您的操作系统看不到它。这可能仅是由于$PATH
错误造成的。尝试运行source ~/.bash_profile
,然后重试。如果仍然无法运行,则该路径可能不包含在$PATH
中。
最后,几个月前,我通过全新安装的Centos进行了相当大的尝试,其中node
一直无法在全球范围内进行任何安装。 Google上的教程只会告诉您chmod 777
或/usr/bin
或/usr/local/bin
,这是个坏主意。而是将node
配置为对其模块使用不同的目标路径。
希望这会有所帮助...
答案 3 :(得分:0)
就我而言,删除node_modules文件夹并运行yarn install
很有帮助。我的目录权限已更改,并且影响了本地安装的Encore。