我目前正在学习ES6和Webpack,有一组特定的文件,import
语句无法正常工作。以下是问题所在:
Sagas.js
import { deleteMe } from './DeleteMe';
import * as constants from '../Constants';
debugger;
DeleteMe.js
export const deleteMe = "Yep, it's loading";
console.log(deleteMe);
在上述文件中,
deleteMe
无法通过调试器(使用Chrome Inspector)访问。而 constants
可以。另外,这是 Constants.js 文件。
export const SET_COMMENTS = 'SET_COMMENTS';
在调试器停止之前(在Chrome检查器中),控制台会触发“Yep,it's loading”,因此文件本身已经通过。
我尝试了:
- 通过
import * as deleteMeStuff from ./DeleteMe
查看deleteMeStuff
是否填充。它没有填充。
- 重新启动webpack-dev-server。没有成功,在编译时没有出现错误。在./DeleteMe中添加 debugger
可以确认更改已经传入。
- 使用 const deleteMe = "Yep, it's working"; export default deleteMe
和 import deleteMe from './DeleteMe'
,但仍然不行。在调试器中,我注意到
_DeleteMe
返回{deleteMe: "Yep, it's loading", __esModule: true}
。你知道这里发生了什么并且如何解决吗?我非常困惑。我的应用程序中的其他文件成功地使用了很多其他导入文件。
const deleteMe = "Yep, it's loading"; export { deleteMe };
thenimport { deleteMe } from './DeleteMe';
- connexodeleteMe
,就不会导入它了。 - T.J. Crowder(0, _ModuleName.deleteMe)
)。 - Yury TarabankoSagas.js
中插入一个 console.log(deleteMe) 也可以正常工作(???)。然而,在下一行调试器仍然找不到deleteMe
。 @Yury 承认我的 ES6/Babel/Webpack 知识有限 - 这听起来是可行的。在 Chrome 检查器中是否有追踪更改的常量名称的方法?此外,那些更改的名称是否会显示在 Chrome 检查器->源中?(它们显示为deleteMe
) - PlankTon