无法将导出为默认值用于 chrome 版本 64.0.3282.186(官方版本)(64 位)



我正在研究将ES6导入/导出添加到Transcrypt Python到JavaScript编译器。 作为为此进行的实验,我有以下代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />            
<script type="module" src="testmodule.js"></script> 
<script type="module" src="testmain.js"></script>
</head>
<body>
</body>
</html>

和测试模块.js:

'use strict';
function testmodule_f () {
function cube(x) {
return x * x * x;
}
const foo = Math.PI + Math.SQRT2;
var graph = {
options:{
color:'white',
thickness:'2px'
},
draw: function(){
console.log('From graph draw function');
}
}
var all = {cube, foo, graph};
return all;
}
var testmodule = testmodule_f ();
export {testmodule as default};

和测试主.js:

'use strict';
import {tm} from './testmodule.js';
tm.graph.options = {
color:'blue',
thickness:'3px'
}; 
tm.graph.draw();
console.log(tm.cube(3)); // 27
console.log(tm.foo);    // 4.555806215962888

我得到:

Uncaught SyntaxError: The requested module does not provide an export named 'tm'

使用普通命名导出(因此没有默认值)它可以正常工作。 我做错了什么?

此外,如果我将 testmain 更改为以下内容.js它有效:

'use strict';
import {default as tm} from './testmodule.js';
tm.graph.options = {
color:'blue',
thickness:'3px'
}; 
tm.graph.draw();
console.log(tm.cube(3)); // 27
console.log(tm.foo);    // 4.555806215962888

似乎 Chrome 除了将其视为一个完全普通的名称之外,对default这个词没有任何作用?但这与以下情况相矛盾:

https://developer.mozilla.org/en-US/docs/web/javascript/reference/statements/export

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import

以下作品:

测试主.js

'use strict';
import tm from './testmodule.js';
tm.graph.options = {
color:'blue',
thickness:'3px'
}; 
tm.graph.draw();
console.log(tm.cube(3)); // 27
console.log(tm.foo);    // 4.555806215962888

测试模块.js

'use strict';
function testmodule_f () {
function cube(x) {
return x * x * x;
}
const foo = Math.PI + Math.SQRT2;
var graph = {
options:{
color:'white',
thickness:'2px'
},
draw: function(){
console.log('From graph draw function');
}
}
var all = {cube, foo, graph};
return all;
}
var testmodule = testmodule_f ();
export default testmodule;

我仍然觉得原始代码也应该工作......

相关内容

  • 没有找到相关文章

最新更新