2014-01-26 56 views
1

不必要的文件,我已经开始学习如何使用RequireJS和鲍尔包管理系统。我定义了bower.json文件是这样的:排除从部署

{ 

    "name": "App", 
    "version": "1.0", 
    "dependencies": { 

     "jquery": null, 
     "backbone-amd": null, 
     "underscore-amd": null, 
     "requirejs": null, 
     "handlebars": null, 
     "mustache" : null 

    } 

} 

它下载库,但还下载示例文件和文档的backbone-amdunderscore-amdrequirejs。我的项目的大小是52 MB(并且在与r.js,42 MB构建之后)。有没有办法排除不必要的文件并减少项目的大小(手动删除和删除除外)?

+0

不明确。 1)如果这是一个混帐问题(正如目前接受的答案所证明的那样),为什么git在问题中没有提及? 2)目前的框架问题(关注“r.js”输出的大小)使得这听起来像传递给浏览器的问题。 – Louis

+0

对不起,我认为这是解决方案,问题是我当地运行凉亭安装它下载所有文件,但也下载文档和示例。生成后,文件也存在并且会增加项目大小。有没有办法只下载图书馆例如。 requirejs.js没有示例和文档。我的英文不是很好:( – Sysrq147

回答

3

您可以使用像Gruntmake这样的构建工具来避免必须一次又一次地手动执行此操作。这就是我所做的。我的项目往往是结构是这样的:

  • lib/包含项目的自己的代码。

  • build/包含建设项目的结果。换句话说,应该安装在服务器上的代码。

然后,我有一个构建设置使用咕噜声或制作一个使用通过鲍尔,NPM或其他方式下载build/下创建文件lib/加上供应商包的代码。

构建通常采用以下两种方法来处理供应商套餐:

  1. 如果包不包含不必要的文件(如实例和文档),只需将其复制到适当位置build/

    此方法是优选的。要确定是否可以使用此方法,您必须检查供应商如何打包其软件。有些库分布在多个包中。例如,Lodash有170个包可通过npm。所以对于有多个软件包可用的库,你应该检查是否有一个不包含不必要的信息。如果是这种情况,可以使用这种方法。

  2. 如果软件包确实包含不必要的文件,那么构建过程需要更加智能一点,并且只需要复制所需的文件。

    或早或晚,你会遇到要使用一些软件分发与您不希望文件的情况。这是保证发生。

    在这种情况下,你可以与开发商沟通,并指出这将是多么好的是如果是这样,它仅包含必要的部署文件,他们可以打包他们的软件。如果他们接受为其软件添加仅包含必需文件的软件包,则可以使用上面的第一种方法。否则,您必须了解软件是如何构建的,确定您绝对需要的,并为您的构建过程(Grunt,make或其他)编写一个仅复制所需文件的函数。

3

常见的工作流程是,你把你的凉亭verdor目录.gitignore,然后你的服务器上部署你的代码后,你将再次运行亭子。这就是任何依赖管理库的目的。

+0

是最好的答案有史以来,:D – richardhell

相关问题