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

如何在自定义Node.js npm包中访问本地音频文件并播放?

解决npm包中音频文件的访问问题

问题出在你使用了绝对路径 /sounds/soft_click_1s.wav,这个路径会指向项目根目录,而npm包安装后音频文件的实际位置并非根目录下的sounds文件夹,导致无法找到文件。以下是可行的解决方法:

方法一:用相对路径结合Node.js路径模块获取正确路径

根据你的模块类型选择对应代码:

CommonJS模块(默认的index.js)

const path = require('path');
// 拼接出音频文件的正确绝对路径
const audioFilePath = path.join(__dirname, 'sounds', 'soft_click_1s.wav');
const audio = new Audio(audioFilePath);
audio.play();

ES模块(需在package.json中设置"type": "module")

import { fileURLToPath } from 'url';
import { dirname, join } from 'path';

const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const audioFilePath = join(__dirname, 'sounds', 'soft_click_1s.wav');
const audio = new Audio(audioFilePath);
audio.play();

__dirname 会指向当前index.js所在目录,通过path.join拼接路径能保证跨Windows、Linux等系统的路径格式正确性。

方法二:确保npm包发布时包含音频文件

在package.json中添加files字段,明确指定需要发布的文件/目录,避免音频文件被npm忽略:

{
  "files": [
    "sounds/",
    "index.js"
  ]
}

内容的提问来源于stack exchange,提问作者The Blind Hawk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 04:01:20