2016-10-14 45 views
3

我遇到了gulp.js的问题。吞咽错误:路径必须是字符串

重现步骤:

$ composer global require "laravel/installer=~1.1" 
$ laravel new myproject 
$ cd myproject 
$ php artisan serve 
$ npm install 
$ npm rm bootstrap-sass —save 
$ npm install foundation-sites —save 
$ npm install motion-ui —save 

然后我复制

_settings.scss 

node_modules/foundation-sites/scss/settings 

resources/assets/sass 

在app.scss然后我把每个基金的进口

,最后我写的药剂任务报告如下:

path.js:7 
    throw new TypeError('Path must be a string. Received ' + inspect(path)); 

http://zecipriano.com/en/2015/12/laravel-elixir-and-zurb-foundation-revisited/

但是,当我从终端启动一饮而尽......不知道该怎么做。

一切都已更新,所以我认为这不是版本问题。

[编辑]

$ node -v 

v6.8.0 

,这里是我的gulpfile.js:

const elixir = require('laravel-elixir'); 
 

 
require('laravel-elixir-vue-2'); 
 

 
/* 
 
|-------------------------------------------------------------------------- 
 
| Elixir Asset Management 
 
|-------------------------------------------------------------------------- 
 
| 
 
| Elixir provides a clean, fluent API for defining some basic Gulp tasks 
 
| for your Laravel application. By default, we are compiling the Sass 
 
| file for our application, as well as publishing vendor resources. 
 
| 
 
*/ 
 

 
elixir(function(mix) { 
 

 
    // Sass 
 
    var options = { 
 
     includePaths: [ 
 
      'node_modules/foundation-sites/scss', 
 
      'node_modules/motion-ui/src' 
 
     ] 
 
    }; 
 

 
    mix.sass('app.scss', null, options); 
 

 
    // Javascript 
 
    var jQuery = '../../../node_modules/jquery/dist/jquery.js'; 
 
    var foundationJsFolder = '../../../node_modules/foundation-sites/js/'; 
 

 
    mix.scripts([ 
 
     jQuery, 
 
     foundationJsFolder + 'foundation.core.js', 
 
     // Include any needed components here. The following are just examples. 
 
     foundationJsFolder + 'foundation.util.mediaquery.js', 
 
     foundationJsFolder + 'foundation.util.keyboard.js', 
 
     foundationJsFolder + 'foundation.util.timerAndImageLoader.js', 
 
     foundationJsFolder + 'foundation.tabs.js', 
 
     // This file initializes foundation 
 
     'start_foundation.js' 
 
    ]); 
 

 
});

任何想法?

预先感谢您。

+0

该错误似乎是节点错误,而不是吞咽错误。你可以发布你的节点版本 - “node -v” - 和你的gulp.js文件的内容? –

+0

感谢您的回复:我在主要问题中添加了详细信息。 –

+0

似乎有一个涉及nodeJs v6 +和gulp的问题。如果您的应用程序不依赖于节点v6,那么您可以通过运行'nvm install 5'然后使用'nvm use 5'从节点v6.8.0降级到v5.11.1,只要您安装了节点版本管理器。您可以通过'nvm -v'命令检查是否安装了nvm。 –

回答

6

问题是选项已从第三个参数移动到第四个参数。

mix.sass('app.scss', null, null, options); 

干杯:您可以运行它d

+0

伴侣,我偶然发现这个帖子,你救了我:http://stackoverflow.com/a/40445663/4197938非常感谢! – slick

+0

很高兴能帮到你! – Marco

+0

我在哪里可以找到这些信息(https://laravel.com/docs/5.3/elixir#sass)? – raphael

0

我已经安装了4.4.2节点和反驳了同样的错误。然后我直接传递了目录字符串,而不是使用带有方向的数组。

+0

你能解释一下吗? –

+0

@DieterMeemken例如,它是.less('admin.less',bowerDir,{paths:adminLess})其中adminLess是一个变量,我定义为var adminLess = [path1,path2,path3];并报告错误。在我改成.less('admin.less',bowerDir,path1,path2,path3)后,我工作了。 –

相关问题