Ember.js中npm安装howler.js后无法导入的问题求助
解决Ember控制器中导入howler.js的问题
你已经成功安装了howler的npm包,但Ember的模块解析系统还没识别到它,这就是你遇到Could not find module 'howler'错误的原因。下面提供两种可行的解决方法,适配不同版本的Ember项目:
方法1:使用ember-auto-import(推荐,适用于较新Ember版本)
ember-auto-import是官方推荐的npm包处理工具,能自动帮你解析和导入npm模块,步骤很简单:
- 先安装ember-auto-import插件:
ember install ember-auto-import
- 安装完成后,你之前写的导入语句
import { Howl } from 'howler';就能正常工作了。举个控制器里的使用例子:
import Controller from '@ember/controller'; import { Howl } from 'howler'; export default class FooController extends Controller { playMySound() { const sound = new Howl({ src: ['/assets/my-sound.mp3'] }); sound.play(); } }
方法2:手动导入全局脚本(适用于旧版Ember CLI)
如果你的Ember版本比较老,不支持ember-auto-import,可以手动把howler的脚本引入项目,然后借助全局变量使用:
- 打开项目根目录下的
ember-cli-build.js,添加app.import语句引入howler的编译文件:
module.exports = function(defaults) { let app = new EmberApp(defaults, { // 你的其他项目配置 }); // 引入howler的压缩版脚本 app.import('node_modules/howler/dist/howler.min.js'); return app.toTree(); };
- 之后在控制器里不用写import语句,直接使用全局的
Howl对象即可:
import Controller from '@ember/controller'; export default Controller.extend({ playMySound() { const sound = new Howl({ src: ['/assets/my-sound.mp3'] }); sound.play(); } });
两种方法都能解决模块找不到的问题,优先推荐ember-auto-import,它更贴合现代Ember的开发模式。
内容的提问来源于stack exchange,提问作者shearichard
相关产品推荐
相关产品推荐

