Javascript es6不允许扩展';导入&x27;对象

Javascript es6不允许扩展';导入&x27;对象,javascript,ecmascript-6,Javascript,Ecmascript 6,这是测试文件“test.js” export const a=1 这是导入文件 import * as Test from './Test.js' Test.b=2 然后创建反应应用程序出现错误: 在“./Test”中找不到导出“b”(作为“测试”导入) 但如果我使用“require”而不是“import”,它就正确了: var Test = require('./Test.js') Test.b=2 console.log(Test.b) 这真的让我感到困惑,如果有人能给我帮助,我将不胜

这是测试文件“test.js”

export const a=1
这是导入文件

import * as Test from './Test.js'
Test.b=2
然后创建反应应用程序出现错误:

在“./Test”中找不到导出“b”(作为“测试”导入)

但如果我使用“require”而不是“import”,它就正确了:

var Test = require('./Test.js')
Test.b=2
console.log(Test.b)

这真的让我感到困惑,如果有人能给我帮助,我将不胜感激。

ES模块是只读的,
*
导入不能在本机实现中修改,除了测试目的之外,不应该修改


模块的可写性在不同的实现中可能有所不同。
create-react-app
使用的Webpack不具有物理保护模块对象的功能,因此在使用
require
导入模块对象时,可以对其进行修改,尽管您不应该这样做。

问题到底是什么?为什么ES6设计成这样?即使我们我想告诉你,它到底发生了什么变化?你已经知道如何应对这种情况。我有点困惑……你正在导入一个模块并试图访问一个属性
b
,但你只导出
a
?谢谢你的评论,这与反应无关,但我只想扩展另一个现有模块,我知道这是一个非常复杂的问题asic的问题,但不是开玩笑这是我第一次面对这个问题,除了“需要”“,是否有任何ES6风格的表达式可以达到此目的?require不是ES6。CommonJS模块之所以能够工作,是因为Webpack支持它。如果需要扩展现有模块,请提供一个扩展它的包装器模块,
export*from./Test.js';导出常量b…
”。并导入它,而不是原始的。通常就是这样做的。