[英]Symfony Webpack encore error on run. encore: Permission denied
帶有 webpack encore 的 Symfony 4.1 在使用 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
通過 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 ]
試試這個: ./node_modules/.bin/encore dev-server
如果是這樣,您可能已全局安裝了 encore,因此當您運行它時,您無權在全局文件夾中執行此操作。
寫入echo $PATH
並檢查 encore 是否在這里。
我將依靠@Jose 的評論並分享一些常見的陷阱:
安裝encore
時,您是否放置了-g
(用於全局)標志? 如果沒有,這可能是原因。
另一個常見的事情是您的encore
確實是全局安裝的(可能是/usr/local/bin
),但您的操作系統看不到它。 這可能僅僅是由於錯誤的$PATH
。 嘗試運行source ~/.bash_profile
然后重試。 如果您仍然無法運行它,則該路徑可能未包含在您的$PATH
。
最后,幾個月前,我在全新安裝 Centos 時遇到了這個問題,其中node
始終無法在全局安裝任何東西。 Google 上的教程會告訴您chmod 777
您的/usr/bin
或/usr/local/bin
,這只是一個壞主意。 相反,將您的node
配置為對其模塊使用不同的目標路徑。
希望這個對你有幫助...
默認情況下,我在安裝有noexec
標志的分區上。 在/etc/fstab
顯式添加exec
標志解決了我的問題,甚至解決了gulp
其他一些權限問題。
用戶掛載分區,例如在 /etc/fstab 文件中使用“user”或“users”掛載選項時,出於安全原因,默認情況下使用“noexec”掛載選項完成。 這意味着用於執行的內存映射 (mmap) 文件將被拒絕。 另一個原因可能是缺乏內核對共享可寫 mmap 的支持,該支持已添加到 Linux 內核 2.6.26 中。
解決方案:在掛載選項的末尾添加'exec'掛載選項。 重要的是該選項是最后一個,否則其他掛載選項可能會過度判斷其效果。 但是還請注意,Wine 並非旨在直接從 Windows 分區運行任意應用程序。 為此,必須首先通過 Wine 將 Windows 應用程序安裝到 Windows 分區上。
在我的情況下,刪除 node_modules 文件夾並運行yarn install
幫助。 我的目錄權限發生了變化,它影響了本地安裝的 encore。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.