构建没有依赖关系的ember-cli插件

时间:2014-11-07 00:04:25

标签: javascript node.js ember.js ember-cli

我开发了一个工作正常的ember-cli插件。

当我运行命令ember build时,它基本上创建了一个vendor.js文件,其中包含我的插件和所有依赖项(ember,jquery等...),大约3MB

我想知道是否可以将插件作为自己的插件导出(my-addon.js)而不需要任何依赖,作为我可以使用的供应商?

我基本上试图让我的ember-cli插件成为我可以包含在另一个ember项目中的bower组件。 我的插件和所有依赖项都超过100MB的数据(包括节点模块,西兰花,测试...),所以当我使用npm install my-addon安装它时,它非常大。我真的不需要在我的其他项目中,插件本身(dist版本)大约是几KB,这就是我所需要的......

基本上,这是我项目的架构:

Ember项目:

MY-project.git

/my-project
  /app
    /controllers etc...
  /node_modules
    /my-addon //My addon lives here for now and contains everything (all node_modules, bower_components, tests... about 100MB to download!)
  Brocfile.js etc..

ember-cli插件的基本架构:

MY-addon.git

/my-addon
  /addon
  /app
  /bower_components
  /node_modules
  /tests
  Brocfile.js etc..

的package.json:

{
  "name": "my-addon",
  "version": "0.0.1",
  "directories": {
        "doc": "doc",
        "test": "tests"
  },
  "scripts": {
        "start": "ember server",
        "build": "ember build",
        "test": "ember test"
  },
  "engines": {
        "node": ">= 0.10.0"
  },
  "devDependencies": {
        "body-parser": "^1.2.0",
        "broccoli-sass": "0.3.2",
        "broccoli-asset-rev": "0.3.1",
        "broccoli-ember-hbs-template-compiler": "^1.6.1",
        "ember-cli": "0.1.2",
        "ember-cli-content-security-policy": "0.3.0",
        "ember-cli-ic-ajax": "0.1.1",
        "ember-cli-inject-live-reload": "^1.3.0",
        "ember-cli-qunit": "0.1.0",
        "ember-data": "1.0.0-beta.10",
        "ember-export-application-global": "^1.0.0",
        "express": "^4.8.5",
        "glob": "^4.0.5"
    }
    "keywords": [
        "ember-addon"
    ],

    "ember-addon": {
        "configPath": "tests/dummy/config"
    }
}

由于

1 个答案:

答案 0 :(得分:0)

那么,发生了什么?

我的答案是,你的本地回购 - 应该有它需要处理的所有垃圾等......但你用凉亭设置的最终代码应该是一个只有你的/ dist的分支或者某事或 - github repo应该只有未构建的代码。然后......你bower install --save your-thing - 然后会在ember app中注册。然后只需bower installupdate等 - 它会检查配置 - 并根据package.jsonbower.json拉入依赖关系。

如果你记录了你的发现并在这里回答了这个问题,那就太好了。我敢打赌,这是一个非常常见的工作流程。

相关问题