首页 > 解决方案 > Stackblitz.com:在另一个模块中导入模块时出错

问题描述

Stackblitz.com是创建小型实验项目的绝佳资源。然而,今天我遇到了一个问题。

我创建了一个具有以下文件夹结构的 stackblitz 纯 ecmascript 项目

└── root
    ├── Resource
    │   ├── app.js
    │   ├── daylight.js
    │   └── localTexts.js
    ├── index.js
    └── index.html

现在,当我尝试从 inside 导入时localTexts.js./Resources/app.js应用程序崩溃并显示以下消息:

未定义模块未声明为https://js-state-machine.stackblitz.io/~/Resource/app.js的 System.registerDynamic 依赖项

另一个 stackblitz 项目中,这个设置似乎工作正常。我尝试了几种解决方案均无济于事。也许我碰到了我的(许多)盲点之一或其他东西。

在 SO 的片段编辑器的限制内,我无法真正创建示例片段,但这是代码的摘录

// ./Resource/localTexts.js
export default {
   dimmed: `dimmed`,
   remove: `remove`,
   add: `add`,
   ... 
};

// ./Resource/app.js
import txt from `./localTexts.js`;
//              ^ solved! Don't use template literals here! 
export default (() => { 
    const appText = txt; // error occurs here
    ... 
    return { ... }
})();

这是app.js-file。楼上哪位大神能解惑一下?

标签: javascriptecmascript-nextstackblitz

解决方案


问题很简单:我不小心使用了 atemplate literal作为导入路径(所以:)import something from `./somefile.js` 。那只能是一个String literal

现在,错误消息没有提到任何内容,显然 linter @Stackblitz 没有检测到它。嗯,问题解决了。感谢您的关注,很抱歉打扰您。


推荐阅读