Ember.js ember Handlebar:查找定义帮助程序的加载项(不在应用程序/帮助程序中)

Ember.js ember Handlebar:查找定义帮助程序的加载项(不在应用程序/帮助程序中),ember.js,handlebars.js,Ember.js,Handlebars.js,很难找到未在app/helpers中定义的助手的位置。助手的名字非常通用,我在package.json中搜索了助手的名字,但什么都没有。我一直在用谷歌搜索,试图找出插件对它的定义 给定某个助手({{coully-generic name param1=“foo”}}),如何查找它的定义位置 (我正好在余烬2.13) (注意:helper是包含在ember composable helpers中定义的,因此在package.json中搜索“helper”会有一点帮助,但这是一种非常繁琐的直接搜索方

很难找到未在
app/helpers
中定义的助手的位置。助手的名字非常通用,我在package.json中搜索了助手的名字,但什么都没有。我一直在用谷歌搜索,试图找出插件对它的定义

给定某个助手(
{{coully-generic name param1=“foo”}}
),如何查找它的定义位置

(我正好在余烬2.13)


(注意:helper是
包含
ember composable helpers
中定义的
,因此在package.json中搜索“helper”会有一点帮助,但这是一种非常繁琐的直接搜索方式,甚至可能没有得到答案)

对我来说,最简单的方法是运行应用程序的开发版本(
ember-serve
),打开浏览器的开发工具并打开名为
/helpers/.js
的文件。在文件的第一行中,您可以看到文件从何处导入

假设您的应用程序名为foo,并且已经安装了
ember-array-helper
。通过
ember-service
运行应用程序,并在Chrome中打开。转到开发工具源代码部分。在网络中搜索helpers/array.js
。您可以通过ctrl+p按名称搜索文件。如果帮助程序由加载项提供,则此文件将自动生成。如下所示:

define('foo/helpers/array', ['exports', 'ember-array-helper/helpers/array'], function (exports, _array) {
  'use strict';

  Object.defineProperty(exports, "__esModule", {
    value: true
  });
  Object.defineProperty(exports, 'default', {
    enumerable: true,
    get: function () {
      return _array.default;
    }
  });
});
在第一行中,读取导入的名称
ember数组helper/helpers/array
,您可以从中猜测加载项名称(第一部分)。请注意,您还可以通过打开
/assets/addon tree output/ember-array-helper/helpers/array.js
,打开addon通过开发工具导出的实际帮助程序。由于最后一部分来自导入,因此可以轻松使用该部分搜索文件。现在,放置断点并尽可能多地检查此代码


同样的方法应该适用于所有主要的浏览器。

我猜您可以在node_模块和bower_组件中搜索包含
export default Ember.Helper
(旧语法)和
export default Helper
(新语法)的.js文件。然后要查找插件定义的组件,请按名称搜索.hbs文件–(Credit@ctcpip:)是否可以定义一个编辑器/ide插件来查找所有把手组件/helper/etc定义?哇,伙计们,这真的很有用!此外,我意识到一件肯定会做的事情是创建应用程序的调试版本,为应用程序代码和供应商代码输出2个js文件-因为它们包含所有内容,这也可以搜索和检查-尽管我认为在devtools中搜索会更好。