如何解决未捕获的ReferenceError:未定义{Class}
很抱歉,如果您已经回答了这个问题,但是有太多的帖子使用此错误名称和不同的上下文,我可以找到这种情况的答案。
我正在使用Javascript ES6模块,并且试图将我所有的javascript文件“编译”为一个缩小的文件。我正在为此使用Gulp。我有3个js文件(gulpfiles,需要ma类的索引文件和class文件)。我也有一个HTML文件来测试缩小的js文件。这是我的项目的样子:
ListView
// File : gulpfile.js
const { src,dest,task,watch,series,parallel } = require('gulp');
var uglify = require('gulp-uglify')
var babelify = require('babelify')
var browserify = require('browserify')
var source = require('vinyl-source-stream')
var buffer = require('vinyl-buffer')
var rename = require('gulp-rename')
const jsSRC = './classes/'
const jsDEST = './output/'
const jsFILES = ['index.js']
function js(done) {
jsFILES.map( function (entry) {
return browserify({
entries: [jsSRC + entry]
})
.transform( babelify,{ presets: ['@babel/preset-env'] } )
.bundle()
.pipe( source( entry) )
.pipe( rename({ extname: '.min.js'}) )
.pipe( buffer() )
.pipe( uglify() )
.pipe( dest( jsDEST ))
})
done()
}
task('js',js)
task('default',parallel(js))
// File : classes/Logger.js
class Logger{
constructor(msg){
console.log(msg)
}
}
export default Logger ;
// File : classes/index.js
import Logger from './Logger.js'
exports = { Logger }
var l = new Logger('Hello') // This should log 'Hello' in the console
(我使用命令// File : demo.html
<!DOCTYPE html>
<html lang="en">
<head>
<title>Demo</title>
</head>
<body>
<script src="./output/index.min.js"></script>
</body>
</html>
安装所有依赖项)
所以,这就是问题所在。当我在浏览器中打开HTML文件时,会在控制台中显示“ Hello”,因为它是由index.js文件中的 npm install @babel/core @babel/preset-env babelify browserify gulp gulp-cli gulp-rename gulp-uglify vinyl-buffer vinyl-source-stream
行触发的。但是,如果我在控制台中键入完全相同的内容,则会收到此错误var l = new Logger('Hello')
这可能是菜鸟的错误。有人知道为什么我不能在缩小的js中使用我的Logger类吗?我该怎么做才能从缩小的js文件中使用我的课程?
谢谢!
(如果问题,重复的问题或其他任何问题,请告诉我,我会关闭/删除)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。