2016-12-15 81 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,该插件将在每次构建应用程序或安装应用程序时调用。