Javascript 无法访问或使用节点';s fs模块
当我尝试使用节点提供的fs模块时,我发现错误:Javascript 无法访问或使用节点';s fs模块,javascript,node.js,ecmascript-6,Javascript,Node.js,Ecmascript 6,当我尝试使用节点提供的fs模块时,我发现错误: TypeError: undefined is not a function at Object.u [as env] (/home/julien/code/piarm/src/build/piarm.js:1:708) at Object.u.read (/home/julien/code/piarm/src/build/piarm.js:1:1186) at Object../tests/GPIO (/home/juli
TypeError: undefined is not a function
at Object.u [as env] (/home/julien/code/piarm/src/build/piarm.js:1:708)
at Object.u.read (/home/julien/code/piarm/src/build/piarm.js:1:1186)
at Object../tests/GPIO (/home/julien/code/piarm/src/build/piarm.js:1:980)
at u (/home/julien/code/piarm/src/build/piarm.js:1:316)
at e (/home/julien/code/piarm/src/build/piarm.js:1:483)
at Object.<anonymous> (/home/julien/code/piarm/src/build/piarm.js:1:500)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
我做错了什么
Edit我使用的是一个transpiler,因此我的import
在语法上与require()相同代码>
编辑我的吞咽文件
var gulp = require("gulp");
var babelify = require('babelify');
var browserify = require('browserify');
var uglify = require('gulp-uglify');
var stream = require('vinyl-source-stream');
var buffer = require('vinyl-buffer');
var paths = {
js: './src/piarm/**/*.js'
};
gulp.task('build', function () {
browserify({
entries: './src/piarm/piarm.js',
debug: true
})
.transform(babelify)
.bundle()
.pipe(stream('piarm.js'))
.pipe(buffer())
.pipe(uglify())
.pipe(gulp.dest('./src/build'));
});
gulp.task('watch', function () {
gulp.watch(paths.js, ['build']);
});
gulp.task('default', ['build']);
更新我可以确认错误在我的transpiler中。我在es5中编写了相同的代码,并将其与我的节点一起运行。是否与我在gulp文件中使用的Transpiler存在任何不好的兼容性?在节点中,您不导入,您需要:)
在节点中,不导入,需要:)
问题出在巴别塔运输机上。babelify不支持节点导入问题出在babel transpiler中。babelify不支持节点导入node还不支持import
关键字,我猜如果是这样的话,fs将像我的第一个错误一样未定义,但是重新安装后,is表示导入的对象不包含指定的方法。如果我理解正确,那么它就是在导入它。另外,我正在使用来自es6-ES5的transpiler来添加它,我只是尝试了var fs=require('fs')代码>与哪个transpiler具有相同的结果?你怎么称呼它?你用的是哪个节点版本?我用的是巴贝尔。我将包括我的吞咽文件。Node版本v0.12.4
。Node还不支持import
关键字,我猜如果是这样的话,fs将像我的第一个错误一样未定义,但是重新安装后,is表示导入的对象不包含指定的方法。如果我理解正确,那么它就是在导入它。另外,我正在使用来自es6-ES5的transpiler来添加它,我只是尝试了var fs=require('fs')代码>与哪个transpiler具有相同的结果?你怎么称呼它?你用的是哪个节点版本?我用的是巴贝尔。我将包括我的吞咽文件。Node版本v0.12.4
。Node还不支持import
关键字,我猜如果是这样的话,fs将像我的第一个错误一样未定义,但是重新安装后,is表示导入的对象不包含指定的方法。如果我理解正确,那么它就是在导入它。另外,我正在使用来自es6-ES5的transpiler来添加它,我只是尝试了var fs=require('fs')代码>与哪个transpiler具有相同的结果?你怎么称呼它?你用的是哪个节点版本?我用的是巴贝尔。我将包括我的吞咽文件。节点版本v0.12.4
。OP已经解释了他使用的是transpiler,而且普通的require()
也不起作用。@robertklep,他的问题在我回答后被编辑。@idoberko2我在评论中谈到过。但这并不重要——我正在寻找解决方案here@idoberko2很公平,虽然我从语法和ecmascript-6
标记推断他至少使用了某种类型的transpiler。OP已经解释过他使用的是transpiler,而且普通的require()
也不起作用。@robertklep,他的问题是在我回答后编辑的。我在评论中谈到了这一点。但这并不重要——我正在寻找解决方案here@idoberko2很公平,虽然我从语法和ecmascript-6
标记推断他至少使用了某种类型的transpiler。OP已经解释过他使用的是transpiler,而且普通的require()
也不起作用。@robertklep,他的问题是在我回答后编辑的。我在评论中谈到了这一点。但这并不重要——我正在寻找解决方案here@idoberko2很公平,尽管我从语法和ecmascript-6
标记推断他至少使用了某种类型的transpiler。
import fs from 'fs';
function env() {
fs.exists('.env', function(exists) {
if (exists) {
console.log('true')
} else {
console.log('false')
}
});
}
export { env };
var gulp = require("gulp");
var babelify = require('babelify');
var browserify = require('browserify');
var uglify = require('gulp-uglify');
var stream = require('vinyl-source-stream');
var buffer = require('vinyl-buffer');
var paths = {
js: './src/piarm/**/*.js'
};
gulp.task('build', function () {
browserify({
entries: './src/piarm/piarm.js',
debug: true
})
.transform(babelify)
.bundle()
.pipe(stream('piarm.js'))
.pipe(buffer())
.pipe(uglify())
.pipe(gulp.dest('./src/build'));
});
gulp.task('watch', function () {
gulp.watch(paths.js, ['build']);
});
gulp.task('default', ['build']);
var fs = require('fs');