在Laravel 5.4和Node.js上使用Laravel Mix Error编译资产

时间:2017-08-03 18:33:07

标签: node.js laravel ubuntu npm plesk

要全局生成npm,我在CLI上运行:在Ubuntu上运行export PATH=/opt/plesk/node/7/bin:$PATH(我安装了Plesk)。

在没有太多知识的情况下,我在应用程序路径中运行了npm run watch但是我遇到了几个错误:

  

user @ server:〜/ avisos.pagina $ npm run watch

     

@ watch /var/www/vhosts/pagina/avisos.pagina   cross-env NODE_ENV =开发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" " /选择的/ plesk /节点/ 7 /斌/ NPM" "运行" "钟表"

     

npm ERR!节点v7.4.0

     

npm ERR! npm v4.0.5

     

npm ERR!文件sh

     

npm ERR!代码ELIFECYCLE

     

npm ERR!错误的ENOENT

     

npm ERR!系统调用生成

     

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!产生ENOENT

     

npm ERR!

     

npm ERR! @ watch脚本失败' cross-env NODE_ENV =开发node_modules / webpack / bin / webpack.js --watch --progress --hide-modules --config = node_modules / laravel-mix / setup / webpack。 config.js'

     

npm ERR!确保安装了最新版本的node.js和npm。

     

npm ERR!如果这样做,这很可能是包的问题,​​

     

npm ERR!不是与npm本身。

     

npm ERR!告诉作者你的系统失败了:

     

npm ERR! cross-env NODE_ENV =开发node_modules / webpack / bin / webpack.js --watch --progress --hide-modules --config = node_modules / laravel-mix / setup / webpack.config.js

     

npm ERR!您可以通过以下方式获取有关如何为此项目打开问题的信息:

     

npm ERR! npm bugs

     

npm ERR!或者如果不可用,您可以通过以下方式获取他们的信息:

     

npm ERR! npm所有者ls

     

npm ERR!上面可能有额外的日志记录输出。

     

npm ERR!请在支持请求中包含以下文件:

     

npm ERR! /var/www/vhosts/pagina/avisos.pagina/npm-debug.log

当我阅读/var/www/vhosts/pagina/avisos.pagina/npm-debug.log时,这就是我所看到的:

  

0信息如果以ok结尾

就可以了      

1 verbose cli [' / opt / plesk / node / 7 / bin / node',

     

1 verbose cli' / opt / plesk / node / 7 / bin / npm',

     

1个详细的cli' bug' ]

     

2使用npm@4.0.5

信息      

3 info使用node@v7.4.0

     

4傻fetchPackageMetaData。

     

5傻fetchDirectoryPackageData。

     

6个愚蠢的错误网址https://www.npmjs.org/package/

     

7详细堆栈错误:生成xdg-open ENOENT

     在exports._errnoException(util.js:1022:11)

7详细堆栈

     

Process.ChildProcess._handle.onexit上的7个详细堆栈(internal / child_process.js:193:32)

     

onErrorNT上的7个详细堆栈(internal / child_process.js:359:16)

     

_combinedTickCallback上的7个详细堆栈(内部/进程/ next_tick.js:74:11)

     

进程中的7个详细堆栈._tickCallback(内部/进程/ next_tick.js:98:9)

     

8 verbose cwd /var/www/vhosts/pagina/avisos.pagina

     

9错误Linux 4.9.36-x86_64-linode85

     

10错误argv" / opt / plesk / node / 7 / bin / node" " /选择的/ plesk /节点/ 7 /斌/ NPM" "错误"

     

11错误节点v7.4.0

     

12错误npm v4.0.5

     

13错误路径xdg-open

     

14错误代码ENOENT

     

15错误错误ENOENT

     

16错误系统调用spawn xdg-open

     

17错误enoent spawn xdg-open ENOENT

     

18错误enoent spawn xdg-open ENOENT

     

18错误enoent这很可能不是npm本身的问题

     

18错误enoent并且与npm无法找到文件有关。

     

19详细退出[1,true]

现在在我的网站上我可以看到这个而不是Laravel 5.4网站:https://i.imgur.com/Q8Su4K9.png

我试图运行find /var/www/vhosts/pagina/avisos.pagina --name package.json并且无法在任何地方找到它。有没有想过使用Laravel Mix编译资产而不会破坏应用程序或如何使其工作的想法?提前谢谢!

1 个答案:

答案 0 :(得分:1)

由于您正在运行Ubuntu,因此该命令的cross-env部分可能会使您的NPM瘫痪。我已多次遇到此问题并发现删除了cross-env(其中,IIRC,是Windows机器的修复/解决方法,因此,如果您没有在任何地方运行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文件中声明(如果需要,您还可以在其中定义自己的脚本快捷方式)。