Ember-CLI 1.13.8
我有麻烦加载一个插件,我刚刚创建到一个单独的测试应用程序。(这是我的第一个插件。)
因为我在本地开发,所以我使用npm link
如下:
$ cd ember-cli-foo
$ npm link
$ cd ../test-app
$ npm link ember-cli-foo
npm已经在node_modules下创建了链接。
插件也有一个较低的依赖。我在某个地方读到,adddon dir中的主要index.js应该看起来像:
/* jshint node: true */
'use strict';
module.exports = {
name: 'ember-cli-foo',
included: function(app) {
this._super.included(app);
app.import(app.bowerDirectory + "/foo/web/foo.js");
}
};
和一个蓝图:
module.exports = {
description: ""
afterInstall: function(options) {
return addBowerPackageToProject("foo");
}
};
但是当我尝试运行ember serve…
Path or pattern "bower_components/foo/web/foo.js" did not match any files
意识到我可能需要指向插件的 bower_components,我尝试在导入路径前加上前缀:
app.import("node_modules/ember-cli-foo/" + app.bowerDirectory + "/foo/web/foo.js");
但这只是让我:
Path or pattern "node_modules/ember-cli-foo/bower_components/foo/web/foo.js" did not match any files
这个路径是正确的。然后我试了:
$ ember install ember-cli-foo
…生产:
Registry returned 404 for GET on https://registry.npmjs.org/ember-cli-foo
谁能告诉我我错过了什么?如何使用本地npm链接将插件安装到测试应用程序中?更新也许我离你更近一点。我找到了这个技巧来让ember运行蓝图:
$ ember g ember-cli-foo
ember回答说:"正在安装ember-cli-foo"。然而,当我运行ember serve
时,我得到同样的错误,没有找到依赖关系,不管我给它的路径。我发现上面提示的页面和我开始的页面是一样的。
执行ember install ember-cli-foo
仍然会导致一个抱怨,即无法在npm的服务器上找到包。
更新二
我删除了应用程序,重新开始:
$ ember new test
$ cd test
$ npm link ember-cli-foo
$ ember g ember-cli-foo
$ ember serve
...
ENOENT, no such file or directory '/home/bally/dev/apps/test/tmp/concat_with_maps-input_base_path-RopBTsxP.tmp/0/bower_components/foo/web/foo.js'
tmp是空的
$ ember install ember-cli-foo
在本地进行插件开发时,您必须在消费应用程序的bower.json
中手动创建引用foo.js
的条目。不幸的是,你不能做ember install ember-cli-foo
,直到插件存在github或npm。