我通过TypeScript / ASP.NET Core骨架导航应用程序学习Aurelia。一切都在默认状态下正常运行。要测试导出的生产包,我运行Gulp Export任务,然后通过Visual Studio项目发布将应用程序发布到本地文件夹,然后将发布的wwwroot文件夹替换为" export"中的wwwroot文件夹。文件夹,然后从命令行使用dotnet来运行应用程序。
如果我在子目录中有任何源模块,那么事情会中断。例如,我将welcome.ts / html组件文件移动到" / src / Pages"并在app.ts中将其路径moduleId相应调整为" ./ pages / welcome"。然后,非捆绑式应用程序运行良好,但是当我尝试导出的版本时,我收到SystemJS向http://localhost:5000/dist/pages/welcome.js发出的请求404(正如您所期望的那样)。
我可以在app-build.js文件中看到welcome组件的内容,export文件夹中的config.js文件包含预期的文件路径,即它有" Pages / welcome ... "
我已经读过这个看似相似的问题:
https://github.com/aurelia/bundler/issues/131
但是将depCache设置为false对我的情况没有任何影响。为什么SystemJS试图从捆绑包外部单独加载此模块?
答案 0 :(得分:1)
我能够在本地重现此错误。 假设您拥有Windows环境,那将是区分大小写的问题。
将[P]ages
文件夹重命名为[p]ages
后,捆绑版本按预期工作。
在文件系统上有一个[P]ages/welcome.js
视图模型,但[p]ages/welcome
已被定义为moduleId。
[P]ages/welcome.js
,这种行为可能会产生误导。[P]ages/welcome.js
嵌入为[P]ages/welcome
模块。 [p]ages/welcome
内寻找app-build.js
模块。我的建议是尽可能使用小写文件夹/文件名。