2016-12-15 79 views
0

我已經創建了一個依賴gulp派生包來構建的ember插件,所以在插件中,它在package.json中有以下內容。帶依賴的ember/npm插件/ devDependencies

當插件被包含在主應用程序中時,由於缺少各種gulp模塊,構建失敗。插件位於主應用程序的devDependencies部分。

當插件通過npm link時,該插件也會構建到主應用程序中。我的問題是應該如何處理插件依賴性,以便主應用程序無需本地副本就可以構建?

更新:我認爲問題在於,包在安裝後將gulp devDependencies提升爲真正的依賴關係。它是否正確?

附加組件JSON文件

{ 
    "name": "My Addon", 
    "version": "0.0.0", 
    "description": "The default blueprint for ember-cli addons.", 
    "directories": { 
    "doc": "doc", 
    "test": "tests" 
    }, 
    "scripts": { 
    "build": "ember build", 
    "start": "ember server", 
    "test": "ember try:each", 
    "postinstall": "gulp build && bower install" 
    }, 
    "repository": { 
    "type": "git", 
    "url": "git://github.com/myaddon.git" 
    }, 
    "engines": { 
    "node": ">= 0.12.0" 
    }, 
    "author": "", 
    "license": "MIT", 
    "devDependencies": { 
    "bootstrap": "^4.0.0-alpha.5", 
    "broccoli-asset-rev": "^2.4.5", 
    "broccoli-funnel": "^1.0.9", 
    "ember-ajax": "^2.4.1", 
    // more ember modules 
    "find-root": "^0.1.1", 
    "font-awesome": "^4.7.0", 
    "glob": "^4.5.3", 
    "gulp": "^3.9.1", 
    "gulp-clean-css": "^2.2.1", 
    "gulp-concat": "^2.6.0", 
    "gulp-connect": "^2.2.0", 
    "gulp-filter": "^3.0.1", 
    "gulp-git": "^1.4.0", 
    "gulp-rename": "^1.2.2", 
    "gulp-sass": "^2.3.2", 
    "gulp-sourcemaps": "^1.5.2", 
    "gulp-task-loader": "^1.2.1", 
    "gulp-template": "^3.0.0", 
    "gulp-uglify": "^1.2.0", 
    "gulp-zip": "^3.0.2", 
    "lazypipe": "^1.0.1", 
    "loader.js": "^4.0.10", 
    "run-sequence": "^1.1.2" 
    }, 
    "keywords": [ 
    "ember-addon" 
    ], 
    "dependencies": { 
    "ember-cli-babel": "^5.1.7" 
    }, 
    "ember-addon": { 
    "configPath": "tests/dummy/config" 
    } 
} 

回答

0

的附加的依賴關係來構建應用程序(即包括附加組件)所需的,應該在dependencies部分中列出。作爲另一個包的依賴項包含的包的devDependencies被忽略。

還有其他解決方案將add packages整合到應用程序中。您可以在您的插件中創建一個blueprint,該插件將在每次構建應用程序或安裝應用程序時調用。