运行 gulp 给出 "path.js:7 throw new TypeError('Path must be a string. Received ' + inspect(path));"
Running gulp gives "path.js:7 throw new TypeError('Path must be a string. Received ' + inspect(path));"
在我的 Wordpress 项目中,我使用 Laravel Elixir 来处理资产。直到今天一切正常。
现在每次我 运行 gulp
我得到:
$ gulp
path.js:7
throw new TypeError('Path must be a string. Received ' + inspect(path));
^
TypeError: Path must be a string. Received { includePaths:
[ 'bower_components/foundation-sites/scss/',
'bower_components/slick-carousel/slick' ] }
at assertPath (path.js:7:11)
at Object.join (path.js:1211:7)
at prefixOne (/Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/node_modules/laravel-elixir/dist/tasks/GulpPaths.js:143:43)
at GulpPaths.prefix (/Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/node_modules/laravel-elixir/dist/tasks/GulpPaths.js:153:20)
at GulpPaths.src (/Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/node_modules/laravel-elixir/dist/tasks/GulpPaths.js:44:25)
at getPaths (/Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/node_modules/laravel-elixir/dist/tasks/recipes/sass.js:33:33)
at Function.<anonymous> (/Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/node_modules/laravel-elixir/dist/tasks/recipes/sass.js:21:33)
at Function.<anonymous> (/Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/node_modules/laravel-elixir/dist/bootstrap/EnableExtension.js:16:18)
at /Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/gulpfile.js:7:9
at global.Elixir (/Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/node_modules/laravel-elixir/dist/index.js:21:5)
我认为我的 node_modules
目录可能有问题,所以我像往常一样做了 rm -rf node_modules
然后 npm install
。一切都被拉了,但最后我看到:
├── UNMET PEER DEPENDENCY stream-browserify@*
我不知道这个未满足的依赖性是否是原因。如果这有帮助,这是我拥有的软件的特定版本的输出:
node -v
v7.0.0
npm -v
3.10.8
gulp -v
[12:26:22] CLI version 3.9.1
[12:26:22] Local version 3.9.1
这里是my gulpfile.js.
它不喜欢 includePaths
中的数组?我可以寻求帮助吗?谢谢。
编辑:
这是我的 package.json:
{
"name": "slick",
"version": "1.0.0",
"devDependencies": {
"gulp": "^3.9.1",
"laravel-elixir": "^6.0.0-2"
}
}
这个解决方案帮助了我:
The problem is that the options have been moved from the third to the
fourth parameter.
所以我只是在 includePaths
之前添加了额外的 null
。
mix.sass('app.scss', null, null <- THIS IS THE SOLUTION, {
然后运行gulp
给了
$ gulp
[13:15:29] Using gulpfile ~/Code/Komarnicki2/wp-content/themes/komarnicki/gulpfile.js
[13:15:29] Starting 'all'...
[13:15:29] Starting 'sass'...
[13:15:29] 'sass' errored after 60 ms
[13:15:29] Error: Missing binding /Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/node_modules/node-sass/vendor/darwin-x64-51/binding.node
Node Sass could not find a binding for your current environment: OS X 64-bit with Node.js 7.x
Found bindings for the following environments:
- OS X 64-bit with Node.js 6.x
This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass` to build the binding for your current environment.
at Object.<anonymous> (/Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/node_modules/node-sass/lib/index.js:15:11)
at Module._compile (module.js:573:32)
at Object.Module._extensions..js (module.js:582:10)
at Module.load (module.js:490:32)
at tryModuleLoad (module.js:449:12)
at Function.Module._load (module.js:441:3)
at Module.require (module.js:500:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/node_modules/gulp-sass/index.js:187:21)
at Module._compile (module.js:573:32)
[13:15:29] 'all' errored after 63 ms
[13:15:29] Error in plugin 'run-sequence(sass)'
Message:
Missing binding /Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/node_modules/node-sass/vendor/darwin-x64-51/binding.node
Node Sass could not find a binding for your current environment: OS X 64-bit with Node.js 7.x
Found bindings for the following environments:
- OS X 64-bit with Node.js 6.x
This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass` to build the binding for your current environment.
Stack:
Error: Missing binding /Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/node_modules/node-sass/vendor/darwin-x64-51/binding.node
Node Sass could not find a binding for your current environment: OS X 64-bit with Node.js 7.x
Found bindings for the following environments:
- OS X 64-bit with Node.js 6.x
This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass` to build the binding for your current environment.
at Object.<anonymous> (/Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/node_modules/node-sass/lib/index.js:15:11)
at Module._compile (module.js:573:32)
at Object.Module._extensions..js (module.js:582:10)
at Module.load (module.js:490:32)
at tryModuleLoad (module.js:449:12)
at Function.Module._load (module.js:441:3)
at Module.require (module.js:500:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/node_modules/gulp-sass/index.js:187:21)
at Module._compile (module.js:573:32)
所以我完全按照输出中写的去做了
npm rebuild node-sass
最后 gulp
成功了
$ gulp
[13:20:18] Using gulpfile ~/Code/Komarnicki2/wp-content/themes/komarnicki/gulpfile.js
[13:20:18] Starting 'all'...
[13:20:18] Starting 'sass'...
[13:20:19] Finished 'sass' after 900 ms
[13:20:19] Starting 'scripts'...
[13:20:19] Finished 'scripts' after 96 ms
[13:20:19] Starting 'copy'...
[13:20:19] Finished 'copy' after 52 ms
[13:20:19] Starting 'version'...
[13:20:19] Finished 'version' after 56 ms
[13:20:19] Finished 'all' after 1.11 s
[13:20:19] Starting 'default'...
┌───────────────┬──────────────────────────┬─────────────────────────────────────────────────────────────────────────────┬────────────────────┐
│ Task │ Summary │ Source Files │ Destination │
├───────────────┼──────────────────────────┼─────────────────────────────────────────────────────────────────────────────┼────────────────────┤
│ mix.sass() │ 1. Compiling Sass │ assets/sass/app.scss │ public/css/app.css │
│ │ 2. Autoprefixing CSS │ │ │
│ │ 3. Concatenating Files │ │ │
│ │ 4. Writing Source Maps │ │ │
│ │ 5. Saving to Destination │ │ │
├───────────────┼──────────────────────────┼─────────────────────────────────────────────────────────────────────────────┼────────────────────┤
│ mix.scripts() │ 1. Concatenating Files │ bower_components/fontfaceobserver/fontfaceobserver.js │ public/js/all.js │
│ │ 2. Writing Source Maps │ assets/js/font.loader.js │ │
│ │ 3. Saving to Destination │ bower_components/jquery/dist/jquery.min.js │ │
│ │ │ bower_components/foundation-sites/dist/foundation.min.js │ │
│ │ │ bower_components/moment/moment.js │ │
│ │ │ bower_components/moment/locale/pl.js │ │
│ │ │ bower_components/bLazy/blazy.js │ │
│ │ │ bower_components/jQuery-viewport-checker/dist/jquery.viewportchecker.min.js │ │
│ │ │ bower_components/slick-carousel/slick/slick.min.js │ │
│ │ │ bower_components/masonry/dist/masonry.pkgd.js │ │
│ │ │ bower_components/imagesloaded/imagesloaded.pkgd.js │ │
│ │ │ bower_components/magnific-popup/dist/jquery.magnific-popup.js │ │
│ │ │ assets/js/scripts.js │ │
│ │ │ assets/js/modules/*.js │ │
│ │ │ assets/js/other/*.js │ │
├───────────────┼──────────────────────────┼─────────────────────────────────────────────────────────────────────────────┼────────────────────┤
│ mix.copy() │ 1. Saving to Destination │ assets/fonts//**/* │ public/fonts/ │
├───────────────┼──────────────────────────┼─────────────────────────────────────────────────────────────────────────────┼────────────────────┤
│ mix.version() │ 1. Versioning │ public/css/app.css │ public/build │
│ │ 2. Rewriting File Paths │ public/js/all.js │ │
│ │ 3. Saving to Destination │ │ │
│ │ 4. Copying Source Maps │ │ │
└───────────────┴──────────────────────────┴─────────────────────────────────────────────────────────────────────────────┴────────────────────┘
[13:20:19] Finished 'default' after 6.65 ms
我仍然不知道为什么会发生这一切。那是因为最近我在创建 my shell scripts (brew install node
) 时弄乱了 brew
东西吗?很高兴我的问题得到解决,但我很不高兴不知道是什么原因造成的。还有人可以贡献并告诉我哪里出了问题吗?
- 为什么更改了语法?
- 为什么路径数组在参数列表中排在第 4 位?
- 以后如何避免这种情况?
- 如果有人决定添加第 5、6 个参数怎么办?
是因为依赖版本不匹配吗?现在我担心将来也会发生这种情况......
在我的 Wordpress 项目中,我使用 Laravel Elixir 来处理资产。直到今天一切正常。
现在每次我 运行 gulp
我得到:
$ gulp
path.js:7
throw new TypeError('Path must be a string. Received ' + inspect(path));
^
TypeError: Path must be a string. Received { includePaths:
[ 'bower_components/foundation-sites/scss/',
'bower_components/slick-carousel/slick' ] }
at assertPath (path.js:7:11)
at Object.join (path.js:1211:7)
at prefixOne (/Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/node_modules/laravel-elixir/dist/tasks/GulpPaths.js:143:43)
at GulpPaths.prefix (/Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/node_modules/laravel-elixir/dist/tasks/GulpPaths.js:153:20)
at GulpPaths.src (/Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/node_modules/laravel-elixir/dist/tasks/GulpPaths.js:44:25)
at getPaths (/Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/node_modules/laravel-elixir/dist/tasks/recipes/sass.js:33:33)
at Function.<anonymous> (/Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/node_modules/laravel-elixir/dist/tasks/recipes/sass.js:21:33)
at Function.<anonymous> (/Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/node_modules/laravel-elixir/dist/bootstrap/EnableExtension.js:16:18)
at /Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/gulpfile.js:7:9
at global.Elixir (/Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/node_modules/laravel-elixir/dist/index.js:21:5)
我认为我的 node_modules
目录可能有问题,所以我像往常一样做了 rm -rf node_modules
然后 npm install
。一切都被拉了,但最后我看到:
├── UNMET PEER DEPENDENCY stream-browserify@*
我不知道这个未满足的依赖性是否是原因。如果这有帮助,这是我拥有的软件的特定版本的输出:
node -v
v7.0.0
npm -v
3.10.8
gulp -v
[12:26:22] CLI version 3.9.1 [12:26:22] Local version 3.9.1
这里是my gulpfile.js.
它不喜欢 includePaths
中的数组?我可以寻求帮助吗?谢谢。
编辑:
这是我的 package.json:
{
"name": "slick",
"version": "1.0.0",
"devDependencies": {
"gulp": "^3.9.1",
"laravel-elixir": "^6.0.0-2"
}
}
这个解决方案帮助了我:
The problem is that the options have been moved from the third to the fourth parameter.
所以我只是在 includePaths
之前添加了额外的 null
。
mix.sass('app.scss', null, null <- THIS IS THE SOLUTION, {
然后运行gulp
给了
$ gulp
[13:15:29] Using gulpfile ~/Code/Komarnicki2/wp-content/themes/komarnicki/gulpfile.js
[13:15:29] Starting 'all'...
[13:15:29] Starting 'sass'...
[13:15:29] 'sass' errored after 60 ms
[13:15:29] Error: Missing binding /Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/node_modules/node-sass/vendor/darwin-x64-51/binding.node
Node Sass could not find a binding for your current environment: OS X 64-bit with Node.js 7.x
Found bindings for the following environments:
- OS X 64-bit with Node.js 6.x
This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass` to build the binding for your current environment.
at Object.<anonymous> (/Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/node_modules/node-sass/lib/index.js:15:11)
at Module._compile (module.js:573:32)
at Object.Module._extensions..js (module.js:582:10)
at Module.load (module.js:490:32)
at tryModuleLoad (module.js:449:12)
at Function.Module._load (module.js:441:3)
at Module.require (module.js:500:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/node_modules/gulp-sass/index.js:187:21)
at Module._compile (module.js:573:32)
[13:15:29] 'all' errored after 63 ms
[13:15:29] Error in plugin 'run-sequence(sass)'
Message:
Missing binding /Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/node_modules/node-sass/vendor/darwin-x64-51/binding.node
Node Sass could not find a binding for your current environment: OS X 64-bit with Node.js 7.x
Found bindings for the following environments:
- OS X 64-bit with Node.js 6.x
This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass` to build the binding for your current environment.
Stack:
Error: Missing binding /Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/node_modules/node-sass/vendor/darwin-x64-51/binding.node
Node Sass could not find a binding for your current environment: OS X 64-bit with Node.js 7.x
Found bindings for the following environments:
- OS X 64-bit with Node.js 6.x
This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass` to build the binding for your current environment.
at Object.<anonymous> (/Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/node_modules/node-sass/lib/index.js:15:11)
at Module._compile (module.js:573:32)
at Object.Module._extensions..js (module.js:582:10)
at Module.load (module.js:490:32)
at tryModuleLoad (module.js:449:12)
at Function.Module._load (module.js:441:3)
at Module.require (module.js:500:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/Users/slick/Code/Komarnicki2/wp-content/themes/komarnicki/node_modules/gulp-sass/index.js:187:21)
at Module._compile (module.js:573:32)
所以我完全按照输出中写的去做了
npm rebuild node-sass
最后 gulp
成功了
$ gulp
[13:20:18] Using gulpfile ~/Code/Komarnicki2/wp-content/themes/komarnicki/gulpfile.js
[13:20:18] Starting 'all'...
[13:20:18] Starting 'sass'...
[13:20:19] Finished 'sass' after 900 ms
[13:20:19] Starting 'scripts'...
[13:20:19] Finished 'scripts' after 96 ms
[13:20:19] Starting 'copy'...
[13:20:19] Finished 'copy' after 52 ms
[13:20:19] Starting 'version'...
[13:20:19] Finished 'version' after 56 ms
[13:20:19] Finished 'all' after 1.11 s
[13:20:19] Starting 'default'...
┌───────────────┬──────────────────────────┬─────────────────────────────────────────────────────────────────────────────┬────────────────────┐
│ Task │ Summary │ Source Files │ Destination │
├───────────────┼──────────────────────────┼─────────────────────────────────────────────────────────────────────────────┼────────────────────┤
│ mix.sass() │ 1. Compiling Sass │ assets/sass/app.scss │ public/css/app.css │
│ │ 2. Autoprefixing CSS │ │ │
│ │ 3. Concatenating Files │ │ │
│ │ 4. Writing Source Maps │ │ │
│ │ 5. Saving to Destination │ │ │
├───────────────┼──────────────────────────┼─────────────────────────────────────────────────────────────────────────────┼────────────────────┤
│ mix.scripts() │ 1. Concatenating Files │ bower_components/fontfaceobserver/fontfaceobserver.js │ public/js/all.js │
│ │ 2. Writing Source Maps │ assets/js/font.loader.js │ │
│ │ 3. Saving to Destination │ bower_components/jquery/dist/jquery.min.js │ │
│ │ │ bower_components/foundation-sites/dist/foundation.min.js │ │
│ │ │ bower_components/moment/moment.js │ │
│ │ │ bower_components/moment/locale/pl.js │ │
│ │ │ bower_components/bLazy/blazy.js │ │
│ │ │ bower_components/jQuery-viewport-checker/dist/jquery.viewportchecker.min.js │ │
│ │ │ bower_components/slick-carousel/slick/slick.min.js │ │
│ │ │ bower_components/masonry/dist/masonry.pkgd.js │ │
│ │ │ bower_components/imagesloaded/imagesloaded.pkgd.js │ │
│ │ │ bower_components/magnific-popup/dist/jquery.magnific-popup.js │ │
│ │ │ assets/js/scripts.js │ │
│ │ │ assets/js/modules/*.js │ │
│ │ │ assets/js/other/*.js │ │
├───────────────┼──────────────────────────┼─────────────────────────────────────────────────────────────────────────────┼────────────────────┤
│ mix.copy() │ 1. Saving to Destination │ assets/fonts//**/* │ public/fonts/ │
├───────────────┼──────────────────────────┼─────────────────────────────────────────────────────────────────────────────┼────────────────────┤
│ mix.version() │ 1. Versioning │ public/css/app.css │ public/build │
│ │ 2. Rewriting File Paths │ public/js/all.js │ │
│ │ 3. Saving to Destination │ │ │
│ │ 4. Copying Source Maps │ │ │
└───────────────┴──────────────────────────┴─────────────────────────────────────────────────────────────────────────────┴────────────────────┘
[13:20:19] Finished 'default' after 6.65 ms
我仍然不知道为什么会发生这一切。那是因为最近我在创建 my shell scripts (brew install node
) 时弄乱了 brew
东西吗?很高兴我的问题得到解决,但我很不高兴不知道是什么原因造成的。还有人可以贡献并告诉我哪里出了问题吗?
- 为什么更改了语法?
- 为什么路径数组在参数列表中排在第 4 位?
- 以后如何避免这种情况?
- 如果有人决定添加第 5、6 个参数怎么办?
是因为依赖版本不匹配吗?现在我担心将来也会发生这种情况......