gpt4 book ai didi

javascript - 无法使用 karma-webpack 和 babel 导入类。导入的类未定义

转载 作者:行者123 更新时间:2023-11-30 00:20:04 26 4
gpt4 key购买 nike

我在一个项目中使用 karma-webpack 和 babel 来编写 ES6 测试并使用 Jasmine 执行并导入我的单元测试使用的 ES6 类。

我注意到我无法导出用 ES6 编写的类以在我的单元测试中使用它。这是我的代码:

你好

export default class Hello {
constructor() {
this.a = 'b';
}
}

你好.test.js

"use strict";

import Hello from './hello';

describe(" hello unit tests", function () {
console.log('Hello: ' + JSON.stringify(Hello));
});

当我运行 karma start 时,console.log 显示:
PhantomJS 1.9.8 (Mac OS X 0.0.0) 日志日志:'Hello: undefined'

但我注意到,如果我将 Hello.js 文件中的代码替换为:

const Hello = {'a': 'b'};

export default Hello;

它在我运行 karma start 时起作用:
PhantomJS 1.9.8 (Mac OS X 0.0.0) LOG LOG: 'Hello: {"a":"b"}'

这是我的karma.conf.js

var webpack = require("webpack");

module.exports = function(config) {
config.set({
basePath: '',
frameworks: ["jasmine"],
files: [
"./tests/**/*.test.js"
],
preprocessors: {
"./tests/**/*.js": ["webpack", "sourcemap"]
},
webpack: {
module: {
loaders: [{
test: /\.js/,
exclude: /(node_modules)/,
loader: 'babel-loader'
}]
},
devtool: "inline-source-map",
},
webpackMiddleware: {
progress: false,
stats: false,
debug: true,
noInfo: true,
silent: true
},
plugins: [
require("karma-webpack"),
require("karma-jasmine"),
require("karma-phantomjs-launcher"),
require("karma-sourcemap-loader"),
require("karma-spec-reporter"),
],
specReporter: {maxLogLines: 5},
reporters: ["spec"],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ["PhantomJS"],
singleRun: true
});
};

我的项目结构:

karma.conf.js
tests/
Hello.js
Hello.test.js

有什么建议吗?

最佳答案

根据 ECMAScript specification JSON.stringify 的:

Values that do not have a JSON representation (such as undefined and functions) do not produce a String. Instead they produce the undefined value.

由于类只是函数的语法糖,调用 JSON.stringify(class Foo {}) 将产生 undefined

尝试执行 console.log(Hello)console.log(Hello.name),它们应该分别产生 [Function: Hello]你好

关于javascript - 无法使用 karma-webpack 和 babel 导入类。导入的类未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33451309/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com