2017-08-03 99 views
0

为了全局生成npm,我在CLI中运行:export PATH=/opt/plesk/node/7/bin:$PATH(我已安装Plesk)。在Laravel 5.4和Node.js上使用Laravel Mix Error编译资产

没有没有太多的知识,我在应用程序的路径跑npm run watch但我得到了几个错误:

[email protected]:~/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 [email protected]

3 info using [email protected]

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编译资产而不会崩溃应用程序或如何使其工作的任何想法?提前致谢!

+0

有时候工作是删除'node_modules'目录并在运行'npm run watch'之前再次运行'npm install',如果仍然不行的话试试'npm run watch-poll'而不是 – apokryfos

+0

感谢评论,我收到了这条消息on'npm install':'Killed ....] - extract:vue:sill doParallel extract 1026' – Maramal

+0

@apokryfos,这是一个CPU问题,但仍然显示Phusion Passenger错误。 – Maramal

回答

1

由于您使用的是Ubuntu,所以可能性很大,cross-env命令的一部分正在跳出您的NPM。我已经多次遇到这个问题,并发现删除cross-env(其中,IIRC是Windows盒的修复/解决方法,所以如果您不在任何地方运行Windows,则不需要)来修复它。或者(或者如果您正在运行Windows),您应该可以安装cross-envnpm 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文件中声明(您也可以在其中定义自己的脚本快捷方式)。