【发布时间】:2019-08-22 15:45:37
【问题描述】:
我有一个 es6 脚本,其中包含一个带有 es6 导入的补间库。如果代码没有被转译,代码可以正常工作,我的意思是我可以导入补间并在脚本中使用它,如果我在我的配置中使用 webpacke,脚本退出时会出错,因为 TWEEN 在某种程度上是未定义的。
我尝试使用 mjs 更改补间文件的扩展名,但它会产生其他错误,例如
require is not defined
我 webpack 使用 require 函数添加 core-js 模块
require("core-js/modules/es.symbol");
有问题的代码
'use strict';
...
import {TWEEN} from '../threejs/tween.js';
//import {TWEEN} from '../threejs/tween.js';
...
export class CustomClass extends ParentClass {
constructor(arguments) {
super(arguments);
this.tweenGroup = new TWEEN.Group(); // the line that generate "Cant get Group of undefined"
}
...
}
...
这是我的 babel-loader 配置配置
{
test: /\.m?js$/,
exclude: /(node_modules|bower_components)/,
use: {
loader: 'babel-loader',
options: {
sourceType: 'module'
}
}
},
我的 babel 配置是这样的
module.exports = {
presets: [
[
'@babel/preset-env',
{
debug: true,
useBuiltIns: 'usage',
corejs: 3
}
]
],
plugins: [
// '@babel/plugin-proposal-class-properties',
// '@babel/plugin-transform-runtime',
// '@babel/runtime-corejs2',
// '@babel/plugin-syntax-dynamic-import',
// '@babel/plugin-syntax-async-generators',
// '@babel/plugin-transform-regenerator',
// '@babel/plugin-transform-async-to-generator',
'@babel/plugin-transform-modules-commonjs',
// '@babel/plugin-transform-typeof-symbol'
]
};
如果我在未使用 babel 转译的项目中使用 TWEEN 导入的代码(我发布的第一个代码块),它工作得很好,但如果我运行 devserver,它会生成错误。我不明白为什么我无法在编译后正确导入 Tween。
我会提供任何帮助。l
【问题讨论】:
标签: babeljs webpack-4 tween.js