通常在Gulp任务中看起来像这样:
gulp.task('my-task', function() {
return gulp.src(options.SCSS_SOURCE)
.pipe(sass({style:'nested'}))
.pipe(autoprefixer('last 10 version'))
.pipe(concat('style.css'))
.pipe(gulp.dest(options.SCSS_DEST));
});
Run Code Online (Sandbox Code Playgroud)
是否可以将命令行标志传递给gulp(这不是任务)并让它根据具体条件运行任务?例如
$ gulp my-task -a 1
Run Code Online (Sandbox Code Playgroud)
然后在我的gulpfile.js中:
gulp.task('my-task', function() {
if (a == 1) {
var source = options.SCSS_SOURCE;
} else {
var source = options.OTHER_SOURCE;
}
return gulp.src(source)
.pipe(sass({style:'nested'}))
.pipe(autoprefixer('last 10 version'))
.pipe(concat('style.css'))
.pipe(gulp.dest(options.SCSS_DEST));
});
Run Code Online (Sandbox Code Playgroud) Ngrok(https://ngrok.com/)应该允许您通过转发向世界范围的Web公开本地端口和服务.但是,如果我在本地计算机上打开端口80,如下所示:
ngrok 80
Run Code Online (Sandbox Code Playgroud)
我回来了:
Tunnel Status online
Version 1.3/1.3
Forwarding http://3a4bfceb.ngrok.com -> 127.0.0.1:80
Forwarding https://3a4bfceb.ngrok.com -> 127.0.0.1:80
Web Interface http://127.0.0.1:4040
# Conn 0
Avg Conn Time 0.00ms
Run Code Online (Sandbox Code Playgroud)
据我所知,对http://3a4bfceb.ngrok.com的任何请求都将通过端口80进入我的本地计算机,但是如果我坐在阻止传入流量的NAT /防火墙后面(这是一种非常常见的情况).ngrok是否启动轮询请求以确定何时收到数据?
我正在尝试使用gulp-browserify生成一个bundle.js文件,该文件可以包含在客户端的浏览器中并开始呈现React组件.
这是我的App.js文件:
/** @jsx React.DOM */
var React = require('react');
var App = React.createClass({
render: function() {
return <h1>Hello {this.props.name}!</h1>;
}
});
module.exports = App;
Run Code Online (Sandbox Code Playgroud)
还有我的package.json:
"name":"hellosign-gulp",
"version":"0.1.1",
"dependencies": {
"gulp": "3.5.x",
"gulp-browserify": "0.5.0",
"reactify": "~0.8.1",
"react": "^0.10.0",
"gulp-react": "0.2.x"
}
}
Run Code Online (Sandbox Code Playgroud)
和我的gulpfile
var gulp = require('gulp'),
react = require('gulp-react'),
browserify = require('gulp-browserify');
gulp.task('brow-test', function() {
// Single entry point to browserify
gulp.src('./src/App.js', {read: false})
.pipe(browserify({
insertGlobals : true,
transform: ['reactify'],
extensions: ['.jsx'],
debug :false.
}))
.pipe(gulp.dest('.'))
});
Run Code Online (Sandbox Code Playgroud)
现在,当我运行'brow-test'时,我将输出文件重命名为bundle.js,并将其包含在浏览器的HTTP响应中.bundle.js文件非常大,所以我不会在这里包含它,但浏览器最终会抛出错误
未捕获的ReferenceError:未定义require …
gulpfile.js
gulp.task('browser-bundle', ['react'], function() {
...
});
gulp.task('react', function(){
gulp.src(options.JSX_SOURCE)
.pipe(react())
.pipe(gulp.dest(options.JSX_DEST))
});
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我具有浏览器捆绑任务,具体取决于响应任务.我相信这是按预期工作的,因为在输出中我看到了这个:
[gulp] Running 'react'...
[gulp] Finished 'react' in 3.43 ms
[gulp] Running 'browser-bundle'...
Run Code Online (Sandbox Code Playgroud)
但是,虽然响应任务已完成,但它应该写入操作系统的文件还没有完成.我注意到,如果我在浏览器bundle命令中放入一个sleep语句,那么它会按预期工作,但这对我来说似乎有点笨拙.
如果我希望在将文件(来自gulp.dest)同步写入磁盘之前不认为react任务已完成,我该怎么做?
我的印象是使用x-www-form-urlencoded规范的POSTS应该在帖子的正文中发送一个URL编码的参数字符串.但是,当我这样做
data = json.dumps({'param1': 'value1', 'param2': 'value2'})
Requests.post(url, data=data)
Run Code Online (Sandbox Code Playgroud)
接收端请求的主体如下所示:
{"param1": "value1", "param2": "value2"}
Run Code Online (Sandbox Code Playgroud)
但我期待得到这个
param1=value1¶m2=value2
Run Code Online (Sandbox Code Playgroud)
我如何获得以第二种形式发送数据的请求?
使用PHPRedis和Apache PHP-FPM我正在使用pconnect()调用来重用连接 - 过去它有助于不让连接数量过高.但是,在我们的主要redis节点发生故障的情况下 - 我们会自动将从属设备提升为主设备,旧主设备将变为只读状态.然而,pconnect()仍然保持与旧maste的连接 - 所以set()命令开始失败.
我们需要的是一种在不杀死进程的情况下拆除这些持久连接的方法.有任何想法吗?
当我有一个看起来像这样的文件x.js:
x.js
module.exports = function (n) { return n * 111 }
Run Code Online (Sandbox Code Playgroud)
我从命令行运行browserify,如下所示:
browserify -r ./x.js > bundle.js
Run Code Online (Sandbox Code Playgroud)
我得到一个看起来像这样的输出文件(粗略地):
require=(function e(t,n,r){function ......
./App.jsx":[function(require,module,exports){
module.exports=require('0+DPR/');
},{}]},{},[])
Run Code Online (Sandbox Code Playgroud)
然后在我的浏览器代码中我可以这样做:
<html>
<head>
<title>React server rendering example</title>
<script src="static/bundle.js"></script>
</head>
<body>
Welcome to the React server rendering example. Here is a server-rendered React component:
<div id="53a442ff8b39d"></div><script>
var x = require('./x.js');
console.log(x(3))
</script> </body>
</html>
Run Code Online (Sandbox Code Playgroud)
我实际上有两个问题:
1)这在浏览器中不起作用我收到错误:"未捕获错误:找不到模块'./x.js'".为什么会这样?
2)我实际上想要使用vinyl-source-stream在gulp中运行它.我已经尝试在我的gulpfile中做这样的事情,但它不起作用.有任何想法吗?我收到错误'require is not defined'
var gulp = require('gulp'),
browserify = require('browserify'),
source = require('vinyl-source-stream');
var b = browserify({
entries: …
Run Code Online (Sandbox Code Playgroud) 我正在看这个演示页面:
http://www.ymc.ch/sandbox/hamburger/mobile-menu-demo.html
其背后有这个代码:
https://github.com/ymc-thzi/mobile-menu-hamburger
一般来说它工作得很好但是当我的macbook上的菜单打开时,我可以用两根手指滚动并移动白色的身体div.我怎么能阻止使用CSS?
这是场景.我在"master"分支上创建了一个"dev"分支,并做了一些新的提交.其中一些更改仅与我的本地开发计算机相关.例如,我将URL变量更改为指向本地apache服务器,而不是在线发布的真实URL(我在测试阶段为此提高了速度).现在我想将我的更改从dev分支合并到master分支中,但不是那些只在我的本地环境中有意义的更改.
我设想了类似merge -patch的东西,它允许我选择我想要逐行合并的更改.
或者也许我可以检查"主"分支,但将文件保存在我的工作目录中,因为它们在"dev"分支中,然后执行git add --patch.那会有用吗?
我正在通过 PHPRedis(实际上是围绕 PHPRedis 构建的更高级别的包装器)与 Redis 进行交互。我想更新一个键并在数据库中将其重置,但是 TTL 应该在程序中的当前点重置为原始值,我的类不知道原始 TTL 是什么。
所以说原来的 TTL 是 12 小时。我想做这样的事情:
redis->get($key)
$original_ttl = // figure it out
$new_value = something
redis->set($key, $new_value, $original_ttl)
Run Code Online (Sandbox Code Playgroud)
然后我们最终得到引用新值的原始键和另外 12 小时的 ttl。这可能吗?