You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Astro组件中使用指定npm包的正确导入方式咨询

在Astro组件中使用指定npm包的正确导入方式咨询

嘿,这个问题得看你这个@company/my-package的用途,以及你想让它的代码在服务端/构建时还是浏览器客户端执行,两种导入场景对应不同的写法:

1. Frontmatter(--- 之间)导入:服务端/构建时执行

如果你的包是用于服务端逻辑、构建时处理数据,或者不需要在浏览器里运行的工具类代码,就用这种写法。Astro会在构建阶段或者服务端渲染时执行这个导入,不会把包的代码打包到客户端。

示例:

---
// 适合服务端初始化、数据处理等场景
import '@company/my-package';
// 如果包导出了具体的服务端可用函数,也可以这样写:
// import { generateServerData } from '@company/my-package';
---

<!-- 你的组件内容 -->
<div>服务端处理后的内容</div>

2. <script>标签导入:浏览器客户端执行

如果你的包需要在浏览器里运行(比如包含客户端交互逻辑、DOM操作、前端SDK初始化等),就用这种写法。Astro会把这段代码打包到客户端,在页面加载时执行。

示例:

---
---

<script>
  // 适合客户端交互、前端SDK初始化等场景
  import '@company/my-package';
  // 如果需要初始化包的功能,也可以在这里调用:
  // initMyPackage();
</script>

<!-- 你的组件内容 -->
<button id="interactive-btn">点击触发客户端逻辑</button>

小建议

如果不确定该用哪种方式,可以看看@company/my-package的官方文档——通常包会明确说明自己是服务端专用、客户端专用,还是双端通用。要是双端通用,就根据你实际使用它的场景来选就行~

备注:内容来源于stack exchange,提问作者meez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 15:34:37