我编写了一个gulp任务,使用watchify和babelify作为转换将我的.jsx和.js脚本编译成一个包.出于某种原因,我的gulp脚本似乎对变换感到窒息,我不确定为什么:
gulp.task('browserify', function() {
var bundle = watchify(browserify('./app/jsx/client/index.jsx', {
extensions: ['.js', '.jsx'],
debug: process.env.NODE_ENV === 'development'
}));
bundle.transform(babelify);
bundle.on('update', function() {
rebundle(bundle);
});
function rebundle(bundle) {
return bundle.bundle()
.on('error', function(error) {
console.log(error.stack, error.message);
this.emit('end');
})
.pipe(
gulpif(
(process.env.NODE_ENV == 'production'),
require('gulp-rename')('bundle.min.js'),
require('gulp-rename')('bundle.js')
)
)
.pipe(gulpif((process.env.NODE_ENV == 'production'), buffer()))
.pipe(gulpif((process.env.NODE_ENV == 'production'), uglify()))
.pipe(gulp.dest('dist/js'));
}
return rebundle(bundle);
});
Run Code Online (Sandbox Code Playgroud)
在控制台......
path.js:8
throw new TypeError('Path must be a string. Received ' +
^
TypeError: Path must be a string. Received undefined
at assertPath …Run Code Online (Sandbox Code Playgroud) 所以我正在编写一个游戏,我有一个模块可以返回当前通过jQuery按下的键.没有问题.当我尝试访问按下的键时出现问题:
var Keys = require('./lib/keys')
Player.prototype.update = function () {
Keys(function (err, keydown) {
console.log(keydown, keydown['w']);
/* // To move a player up, for example:
if (keydown['w']) {
this.y += this.speed;
}
*/
});
};
Run Code Online (Sandbox Code Playgroud)
并且控制台显示按下了哪些键,但尝试访问一个键给了我一个未定义而不是真.
Object undefined
s: true
w: true
x: true
__proto__: Object
Run Code Online (Sandbox Code Playgroud)
有人有什么想法?
更新:关键模块
var $ = require('./jquery')
var Keys = function (callback) {
var keydown = {};
function keyName(event) {
return String.fromCharCode(event.which).toLowerCase();
}
$(document).bind('keydown', function (event) {
keydown[keyName(event)] = true;
return false;
});
$(document).bind('keyup', function …Run Code Online (Sandbox Code Playgroud) 我有一个项目,我们试图让Node在多个开发人员的计算机上启动并运行。问题在于,并非所有开发人员都是Node(甚至JavaScript)开发人员,我们希望确保他们具有运行特定项目所需的Node版本(开发人员在其计算机上将有多个Node项目)。
我了解了package.json的“ engines”字段,但似乎找不到任何方法来安装所需的Node版本。为了进行测试,我通过NVM将当前节点版本设置为v0.10.29,创建了一个package.json并指定了v0.11.13的必要引擎,并尝试通过该node命令以及package.json-defined npm start命令来启动Node 。
blackjack:node-engines-test sent1nel$ node -v
v0.10.29
blackjack:node-engines-test sent1nel$ cat package.json
{
"name": "node-engines-test",
"version": "0.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"engineStrict": true,
"engines": {
"node": "v0.11.13"
},
"start": "node index.js",
"author": "",
"license": "ISC"
}
blackjack:node-engines-test sent1nel$ cat index.js
console.log('Version: ' + process.version);
blackjack:node-engines-test sent1nel$ node index.js
Version: v0.10.29
blackjack:node-engines-test sent1nel$ npm start
blackjack:node-engines-test sent1nel$
Run Code Online (Sandbox Code Playgroud)
npm install似乎也不在乎节点引擎版本。
blackjack:node-engines-test sent1nel$ npm install …Run Code Online (Sandbox Code Playgroud) 在SO上发布的每个答案(是的,我检查过)似乎都有require 'date'解决方案.我已经完成了,我的代码仍然无法正常工作.
require 'date'
yesterday = RepSched::Helpers.datestring(Date.yesterday)
Run Code Online (Sandbox Code Playgroud)
出于某种原因,Ruby在Date.yesterday上窒息
NoMethodError: undefined method `yesterday' for Date:Class
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
编辑
不好了!现在我的问题比我想象的要大.现在我已经意识到这个问题,我意识到DateTime的行为也是不同的!
javascript ×2
babeljs ×1
browserify ×1
date ×1
dependencies ×1
gulp ×1
node.js ×1
npm ×1
react-jsx ×1
reactjs ×1
ruby ×1