当我尝试使用节点提供的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/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)
我尝试重新安装节点,并在第二次尝试时将错误更改为:
TypeError: Object #<Object> has no method 'exists'
at Object.u [as env] (/data/piarm.js:1:708)
at Object.u.read (/data/piarm.js:1:1190)
at Object../tests/GPIO (/data/piarm.js:1:984)
at u (/data/piarm.js:1:316)
at e (/data/piarm.js:1:483)
at Object.<anonymous> (/data/piarm.js:1:500)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
我的JavaScript看起来像这样:
import fs from 'fs';
function env() {
fs.exists('.env', function(exists) {
if (exists) {
console.log('true')
} else {
console.log('false')
}
});
}
export { env };
我做错了什么?
修改我正在使用转发器,因此我的import
在语法上与require();
修改我的gulp文件
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']);
更新我可以确认错误是在我的转换器中。我在es5中编写了相同的代码并用我的节点运行它。我在gulp文件中使用的转换器是否有任何不良兼容性?
答案 0 :(得分:0)
在节点中,您无需导入,您需要:)
var fs = require('fs');
答案 1 :(得分:0)
问题在于babel转换器。 babelify不支持节点导入