在 Laravel 5.4 和 Node.js 上使用 Laravel 混合错误编译资产
Compile assets with Laravel Mix Error on Laravel 5.4 and Node.js
为了使 npm 全局化,我在 CLI 中 运行:export PATH=/opt/plesk/node/7/bin:$PATH
on Ubuntu(我安装了 Plesk)。
我在应用程序路径中 运行 npm run watch
知识不多,但我遇到了几个错误:
user@server:~/avisos.pagina$ npm run watch
@ watch /var/www/vhosts/pagina/avisos.pagina
cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js
sh: 1: cross-env: not found
npm ERR! Linux 4.9.36-x86_64-linode85
npm ERR! argv "/opt/plesk/node/7/bin/node" "/opt/plesk/node/7/bin/npm" "run" "watch"
npm ERR! node v7.4.0
npm ERR! npm v4.0.5
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! @ watch: cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the @ watch script 'cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /var/www/vhosts/pagina/avisos.pagina/npm-debug.log
当我阅读 /var/www/vhosts/pagina/avisos.pagina/npm-debug.log
时,我看到的是:
0 info it worked if it ends with ok
1 verbose cli [ '/opt/plesk/node/7/bin/node',
1 verbose cli '/opt/plesk/node/7/bin/npm',
1 verbose cli 'bugs' ]
2 info using npm@4.0.5
3 info using node@v7.4.0
4 silly fetchPackageMetaData .
5 silly fetchDirectoryPackageData .
6 silly bugs url https://www.npmjs.org/package/
7 verbose stack Error: spawn xdg-open ENOENT
7 verbose stack at exports._errnoException (util.js:1022:11)
7 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
7 verbose stack at onErrorNT (internal/child_process.js:359:16)
7 verbose stack at _combinedTickCallback (internal/process/next_tick.js:74:11)
7 verbose stack at process._tickCallback (internal/process/next_tick.js:98:9)
8 verbose cwd /var/www/vhosts/pagina/avisos.pagina
9 error Linux 4.9.36-x86_64-linode85
10 error argv "/opt/plesk/node/7/bin/node" "/opt/plesk/node/7/bin/npm" "bugs"
11 error node v7.4.0
12 error npm v4.0.5
13 error path xdg-open
14 error code ENOENT
15 error errno ENOENT
16 error syscall spawn xdg-open
17 error enoent spawn xdg-open ENOENT
18 error enoent spawn xdg-open ENOENT
18 error enoent This is most likely not a problem with npm itself
18 error enoent and is related to npm not being able to find a file.
19 verbose exit [ 1, true ]
现在在我的网站上我可以看到这个而不是 Laravel 5.4 网站:https://i.imgur.com/Q8Su4K9.png
我已经尝试 运行 find /var/www/vhosts/pagina/avisos.pagina --name package.json
但找不到任何地方。在不使应用程序崩溃的情况下使用 Laravel Mix 编译资产的任何想法或如何使其工作?提前致谢!
由于您 运行 宁 Ubuntu,很有可能命令的 cross-env
部分使您的 NPM 出错。我已经 运行 多次解决这个问题并发现删除 cross-env
(IIRC,它是 Windows 框的 fix/workaround,所以如果你不是 运行ning Windows 任何地方,没有必要)修复它。或者(或者如果你是 运行宁 Windows),你应该能够安装 cross-env
和 npm install -g cross-env
。
我发现当我 运行 遇到问题时直接 运行 节点命令很有帮助,所以我自己得到了错误。在这种情况下:
cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js
如果我的怀疑是正确的,您需要将其转换为:
NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js
npm run watch
之类的东西只是这些较长脚本的快捷方式。这些快捷方式在您的 package.json
文件中声明(如果需要,您也可以在其中定义自己的脚本快捷方式)。
为了使 npm 全局化,我在 CLI 中 运行:export PATH=/opt/plesk/node/7/bin:$PATH
on Ubuntu(我安装了 Plesk)。
我在应用程序路径中 运行 npm run watch
知识不多,但我遇到了几个错误:
user@server:~/avisos.pagina$ npm run watch
@ watch /var/www/vhosts/pagina/avisos.pagina cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js
sh: 1: cross-env: not found
npm ERR! Linux 4.9.36-x86_64-linode85
npm ERR! argv "/opt/plesk/node/7/bin/node" "/opt/plesk/node/7/bin/npm" "run" "watch"
npm ERR! node v7.4.0
npm ERR! npm v4.0.5
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! @ watch:
cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the @ watch script 'cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /var/www/vhosts/pagina/avisos.pagina/npm-debug.log
当我阅读 /var/www/vhosts/pagina/avisos.pagina/npm-debug.log
时,我看到的是:
0 info it worked if it ends with ok
1 verbose cli [ '/opt/plesk/node/7/bin/node',
1 verbose cli '/opt/plesk/node/7/bin/npm',
1 verbose cli 'bugs' ]
2 info using npm@4.0.5
3 info using node@v7.4.0
4 silly fetchPackageMetaData .
5 silly fetchDirectoryPackageData .
6 silly bugs url https://www.npmjs.org/package/
7 verbose stack Error: spawn xdg-open ENOENT
7 verbose stack at exports._errnoException (util.js:1022:11)
7 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
7 verbose stack at onErrorNT (internal/child_process.js:359:16)
7 verbose stack at _combinedTickCallback (internal/process/next_tick.js:74:11)
7 verbose stack at process._tickCallback (internal/process/next_tick.js:98:9)
8 verbose cwd /var/www/vhosts/pagina/avisos.pagina
9 error Linux 4.9.36-x86_64-linode85
10 error argv "/opt/plesk/node/7/bin/node" "/opt/plesk/node/7/bin/npm" "bugs"
11 error node v7.4.0
12 error npm v4.0.5
13 error path xdg-open
14 error code ENOENT
15 error errno ENOENT
16 error syscall spawn xdg-open
17 error enoent spawn xdg-open ENOENT
18 error enoent spawn xdg-open ENOENT
18 error enoent This is most likely not a problem with npm itself
18 error enoent and is related to npm not being able to find a file.
19 verbose exit [ 1, true ]
现在在我的网站上我可以看到这个而不是 Laravel 5.4 网站:https://i.imgur.com/Q8Su4K9.png
我已经尝试 运行 find /var/www/vhosts/pagina/avisos.pagina --name package.json
但找不到任何地方。在不使应用程序崩溃的情况下使用 Laravel Mix 编译资产的任何想法或如何使其工作?提前致谢!
由于您 运行 宁 Ubuntu,很有可能命令的 cross-env
部分使您的 NPM 出错。我已经 运行 多次解决这个问题并发现删除 cross-env
(IIRC,它是 Windows 框的 fix/workaround,所以如果你不是 运行ning Windows 任何地方,没有必要)修复它。或者(或者如果你是 运行宁 Windows),你应该能够安装 cross-env
和 npm install -g cross-env
。
我发现当我 运行 遇到问题时直接 运行 节点命令很有帮助,所以我自己得到了错误。在这种情况下:
cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js
如果我的怀疑是正确的,您需要将其转换为:
NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js
npm run watch
之类的东西只是这些较长脚本的快捷方式。这些快捷方式在您的 package.json
文件中声明(如果需要,您也可以在其中定义自己的脚本快捷方式)。