5:52:14 PM: 22:52:14 [ERROR] [vite] x Build failed in 15ms
5:52:14 PM: Could not resolve "../scripts/menu.js" from "src/pages/blog.astro?astro&type=script&index=0&lang.ts"
5:52:14 PM: file: /opt/build/repo/src/pages/blog.astro?astro&type=script&index=0&lang.ts
5:52:14 PM: Stack trace:
5:52:14 PM: at getRollupError (file:///opt/build/repo/node_modules/rollup/dist/es/shared/parseAst.js:396:41)
5:52:14 PM: at ModuleLoader.handleInvalidResolvedId (file:///opt/build/repo/node_modules/rollup/dist/es/shared/node-entry.js:20216:24)
5:52:14 PM:
5:52:14 PM: "build.command" failed
5:52:14 PM: ────────────────────────────────────────────────────────────────
上面来自NetLify,但也会在我在Dev Server上运行构建命令时发生。 这是Astro/HTML代码:
<body>
<Header />
<h1>{pageTitle}</h1>
<p>This is where I will post about my journey learning Astro.</p>
<ul>
<li><a href="/posts/post-1/">Post 1</a></li>
<li><a href="/posts/post-2/">Post 2</a></li>
<li><a href="/posts/post-3/">Post 3</a></li>
</ul>
<Footer />
<script>
import '../scripts/menu.js';
</script>
</body>
这是菜单的内容。JS:
document.querySelector('.hamburger').addEventListener('click', () => {
document.querySelector('.nav-links').classList.toggle('expanded');
});
当我搜索Google的答案时,这会导致我在脚本标签中添加MIME类型,该标签提示Astro不处理JavaScript。 从技术上讲,这允许构建完成,但没有帮助,因为JavaScript不会出现在最后一个网页中。 谁能指向我出了什么问题的方向?
对于Astro到它的事物,
script
标签需要在Astro组件的HTML部分之外:
或您可以直接包含
menu.js
直接内联的内容。如果Astro足够长的时间,Astro将产生一个外部文件(它在引擎盖下使用vite来进行捆绑)。