使用 gulp 和 wiredep,socket.io 不会添加到 index.html(即使它在 bower.json 中)
Using gulp and wiredep, socket.io is not added to index.html (even though it is in bower.json)
我的 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"
}
有时供应商会在他们的 bower.json
文件中排除可选的 main 属性,我相信 wiredep 使用它来编译源文件数组。检查 bower.json
文件 中 的 bower_components/socket.io/
文件夹,看看他们是否包含了该文件。如果没有,也许您可以向 socket.io 发出拉取请求或至少提出一个问题?
Socket.io本身没有bower支持,记住是服务端,不是客户端。
您可以通过将其 serveClient
选项设置为 true
来为套接字服务器提供客户端脚本,并直接将其插入您的 index
中:
<script src="socket.io/socket.io.js"></script>
或者安装在 bower 中引用但使用另一个名称的客户端脚本:
bower install -save socket.io-client
如果此包没有 main
属性,您将不得不在主 bower.json
:
中覆盖它
"overrides": {
"socket.io-client": {
"main": "socket.io.js"
}
}
这样,wiredep 会自动将其注入您的 index.html
。
我的 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"
}
有时供应商会在他们的 bower.json
文件中排除可选的 main 属性,我相信 wiredep 使用它来编译源文件数组。检查 bower.json
文件 中 的 bower_components/socket.io/
文件夹,看看他们是否包含了该文件。如果没有,也许您可以向 socket.io 发出拉取请求或至少提出一个问题?
Socket.io本身没有bower支持,记住是服务端,不是客户端。
您可以通过将其 serveClient
选项设置为 true
来为套接字服务器提供客户端脚本,并直接将其插入您的 index
中:
<script src="socket.io/socket.io.js"></script>
或者安装在 bower 中引用但使用另一个名称的客户端脚本:
bower install -save socket.io-client
如果此包没有 main
属性,您将不得不在主 bower.json
:
"overrides": {
"socket.io-client": {
"main": "socket.io.js"
}
}
这样,wiredep 会自动将其注入您的 index.html
。