Ошибка запуска Symfony Webpack при запуске. вызов на бис: в доступе отказано - PullRequest
0 голосов
/ 03 сентября 2018

Symfony 4.1 с выходом на webpack выдает ошибку при запуске с npm / yarn

Я выполнил шаги, упомянутые в официальной документации symfony, после успешной установки через composer require webpack-encore и после npm install, я попытался npm run dev и получил ошибку ниже, такое же разрешение запрещается при использовании yarn encore dev.

Я использую Debian 9

kamii@kamii-workstation:~$ node -v
v10.9.0
kamii@kamii-workstation:~$ npm -v
6.4.1
kamii@kamii-workstation:~$ yarn -v
1.9.4

VIA NPM:

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

через пряжу

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.

Вот файл журнала NPM

0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'run', 'dev' ]
2 info using npm@6.4.1
3 info using node@v10.9.0
4 verbose run-script [ 'predev', 'dev', 'postdev' ]
5 info lifecycle @~predev: @
6 info lifecycle @~dev: @
7 verbose lifecycle @~dev: unsafe-perm in lifecycle true
8 verbose lifecycle @~dev: PATH: /usr/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/media/disks/Development/dev_lab_gen/exim_pos/node_modules/.bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
9 verbose lifecycle @~dev: CWD: /media/disks/Development/dev_lab_gen/exim_pos
10 silly lifecycle @~dev: Args: [ '-c', 'encore dev' ]
11 silly lifecycle @~dev: Returned: code: 126  signal: null
12 info lifecycle @~dev: Failed to exec dev script
13 verbose stack Error: @ dev: `encore dev`
13 verbose stack Exit status 126
13 verbose stack     at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:301:16)
13 verbose stack     at EventEmitter.emit (events.js:182:13)
13 verbose stack     at ChildProcess.<anonymous> (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13 verbose stack     at ChildProcess.emit (events.js:182:13)
13 verbose stack     at maybeClose (internal/child_process.js:961:16)
13 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:250:5)
14 verbose pkgid @
15 verbose cwd /media/disks/Development/dev_lab_gen/exim_pos
16 verbose Linux 4.9.0-8-amd64
17 verbose argv "/usr/bin/node" "/usr/bin/npm" "run" "dev"
18 verbose node v10.9.0
19 verbose npm  v6.4.1
20 error code ELIFECYCLE
21 error errno 126
22 error @ dev: `encore dev`
22 error Exit status 126
23 error Failed at the @ dev script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 126, true ]

Ответы [ 3 ]

0 голосов
/ 04 сентября 2018

Попробуйте это: ./node_modules/.bin/encore dev-server

Если это так, то, вероятно, у вас установлен глобальный вызов на бис, и поэтому при его запуске у вас нет разрешения делать это в глобальной папке.

Напишите echo $PATH и проверьте, есть ли здесь вызов на бис.

0 голосов
/ 12 октября 2018

Я был в разделе, смонтированном с флагом noexec по умолчанию. Явное добавление флага exec в /etc/fstab решило мою проблему, даже решило некоторые другие проблемы с разрешениями с gulp.

Пользовательские разделы, например при использовании параметров монтирования «user» или «users» в файле / etc / fstab по умолчанию из соображений безопасности выполняется опция монтирования «noexec». Это означает, что файлы отображения памяти (mmap) для выполнения будут запрещены. Другой причиной может быть отсутствие поддержки в ядре совместно используемого mmap с возможностью записи, который был добавлен в ядро ​​Linux 2.6.26.

Решение: Добавьте опцию монтирования exec в конце опций монтирования. Важно, чтобы этот параметр был последним, в противном случае другой параметр монтирования может переоценить его эффективность. Однако, пожалуйста, обратите внимание, что Wine не был предназначен для запуска произвольных приложений непосредственно из раздела Windows. Для этого сначала необходимо установить приложение Windows через Wine на раздел Windows.

0 голосов
/ 04 сентября 2018

Я собираюсь опираться на комментарий @ Хосе и поделиться некоторыми распространенными подводными камнями:

При установке encore вы ставили флаг -g (для глобального)? Если нет, то это может быть причиной.

Другая распространенная вещь заключается в том, что ваш encore действительно был установлен глобально (возможно, /usr/local/bin), но ваша ОС не видит его. Это может быть просто из-за плохого $PATH. Попробуйте запустить source ~/.bash_profile и повторите попытку. Если вы все еще не можете запустить его, возможно, путь не включен в ваш $PATH.

Наконец, несколько месяцев назад я довольно сильно ударил по этому, установив Centos, где node не удалось установить что-либо глобально. Обучающие программы в Google подскажут вам chmod 777 ваш /usr/bin или /usr/local/bin, что просто плохая идея. Вместо этого настройте node на использование другого пути назначения для своих модулей.

Надеюсь, это немного поможет ...

...