Javascript es6不允许扩展';导入&x27;对象
这是测试文件“test.js”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) 这真的让我感到困惑,如果有人能给我帮助,我将不胜
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…
”。并导入它,而不是原始的。通常就是这样做的。