javascript - 使用 gulp 和 wiredep,socket.io 不会添加到 index.html(即使它在 bower.json 中)

标签 javascript html socket.io gulp wiredep

我的 bower.json 文件中有 angular、angular-ui-router 和 socket-io。

当我运行我的 gulp 文件(使用 wiredep)时,这两个 Angular 脚本已成功添加到我的 index.html 文件中,但 socket.io 脚本没有添加 - 我不知道为什么。感谢您的帮助

//命令行

[21:56:06] Using gulpfile ~/dev/projects/ecommerceVidChat/gulpfile.js
[21:56:06] Starting 'default'...
[21:56:06] Starting 'bower-dependencies'...
[21:56:06] Finished 'bower-dependencies' after 6.24 ms
[21:56:06] Finished 'default' after 7.24 ms

//bower.json

  "dependencies": {
    "angular": "~1.3.13",
    "socket.io": "~1.3.4",
    "angular-ui-router": "~0.2.13"
  }

//gulpfile.js

var gulp = require('gulp'),
    wiredep = require('wiredep').stream;

gulp.task('default', function() {
  gulp.start('bower-dependencies')
});

gulp.task('bower-dependencies', function () {  
  gulp.src('./build/index.html') 
    .pipe(wiredep({
      directory: './build/bower_components',
      bowerJson: require('./bower.json'),
    }))
    .pipe(gulp.dest('./build/'));
});

//index.html

<!-- bower:js -->
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/angular-ui-router/release/angular-ui-router.js"></script>
<!-- endbower -->

//package.json

"devDependencies": {
    "gulp": "^3.8.11"
  }

最佳答案

Socket.io 本身不支持 bower,请记住它是服务器,而不是客户端。

您可以通过将其 serveClient 选项设置为 true 来为套接字服务器提供客户端脚本,并将其直接插入到您的 index 中:

 <script src="socket.io/socket.io.js"></script>

或者安装在 bower 中引用但使用另一个名称的客户端脚本:

bower install -save socket.io-client

如果这个包没有 main 属性,你将不得不在你的 main bower.json 中覆盖它:

"overrides": {
  "socket.io-client": {
    "main": "socket.io.js"
  }
}

这样,wiredep 会自动将其注入(inject)到您的 index.html 中。

关于javascript - 使用 gulp 和 wiredep,socket.io 不会添加到 index.html(即使它在 bower.json 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28555668/

相关文章:

javascript - 无法将变量名称从一个 Node 模块发送到另一个 Node 模块,以将其用作使用 socket.io 的聊天应用程序的房间名称

javascript - 为什么 socket.io 不能很好地处理点击事件?

javascript - 为每个数组元素定义一个函数

javascript - 如何使用 Hubot 运行异步 Ruby 脚本?

javascript - jQuery ui 两个复选框,选中需要按钮激活,未选中禁用

html - blogdown:将 html 文件附加到网站

javascript - 基于 Accordion 高度的动画按钮位置

node.js - Electron:socket.io 可以接收但不能发出

javascript - 单击子级别的垂直 CSS 和 Javascript onclick 菜单使其消失

javascript - 如何将 id 传递给 React Js 路径链接?