我目前正在学习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);

在上述文件中,无法从调试器(使用Chrome Inspector)访问deleteMeconstants是。

和Constants.js
export const SET_COMMENTS = 'SET_COMMENTS';

在调试器停止(在Chrome检查器中)之前,控制台会触发“是的,正在加载”,因此文件本身正在传递。

我试过了:
  • import * as deleteMeStuff from ./DeleteMe查看是否会填充deleteMeStuff。它不是
  • 重新启动webpack-dev-server。没有骰子,没有编译错误。在./DeleteMe中添加debugger确认更改已通过。
  • const deleteMe = "Yep, it's working"; export default deleteMeimport deleteMe from './DeleteMe'->仍然没有欢乐

  • 在调试器中,我刚刚注意到_DeleteMe返回{deleteMe: "Yep, it's loading", __esModule: true}
    知道这里发生了什么以及如何解决吗?我很困惑。在我的应用程序中的其他文件中,还有很多其他导入文件可以成功运行。

    最佳答案

    您不能在同一行中使用default和const

    export default const deleteMe = "Yep, it's working"
    

    您必须像这样破坏它:
    export const deleteMe = "Yep, it's loading";
    export default deleteMe;
    

    并导入它,您可以执行以下任一操作:
    import deleteMe  from './DeleteMe';
    

    要么
    import  { deleteMe }  from './DeleteMe';
    

    07-26 03:35