大佬教程收集整理的这篇文章主要介绍了node.js – 在具有子项目的项目中集中node_modules,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下项目结构
-Project -- subproject -- subproject -- subproject
我通过grunt与所有子项目构建项目,我也可以自己构建每个子项目.
目前我有一个Gruntfile.js,package.json&文件夹node_modules(〜50mb),每个子项目和根级别都包含所有必需的模块.
所以可以将node_modules文件夹仅在一个级别上,例如.在根级别上,子项目是指根级别的node_modules?
-Project --subproject --subproject --subproject --node_modules
有没有办法通过package.jmod或其他任何方式引用node_module文件夹?
编辑:
Gruntfile.js(子项目级别)
/*global module:false */ /*jshint node:true */ module.exports = function(grunt) { "use Strict"; // ================================================================================ // project configuration // ================================================================================ grunt.initConfig({ pkg : grunt.file.readJSON('package.json'),jshint: { globals : { d3:true,Modernizr:true,tempo:true },options: grunt.file.readJSON('.jshintrc') },csslint: { subproject: { src: 'css/**/*.css' } },htmllint : { subproject: { src: 'html/**/*.html' } },clean : [ 'output' ],less : { options: { paths: ['./'] },src: { expand: true,cwd: 'css/',src: ['**/*.less'],dest: 'css/',ext: '.css' } },copy: { subproject: { files: [ {src: ['img/**','js/**','folderX/**','!**/*.less'],dest: 'output/subproject/'} ] } } }); grunt.loadNpmTasks('grunt-contrib-clean'); grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-html'); grunt.loadNpmTasks('grunt-css'); grunt.loadNpmTasks('grunt-contrib-less'); grunt.loadNpmTasks('grunt-contrib-copy'); // ================================================================================ // default task // ================================================================================ grunt.registerTask('default',['clean','less','csslint','htmllint','copy']); };
package.json(subproejct级别)
{ "description": "subproject","title": "Lorem Ipsum","devDependencies": { "grunt-contrib-watch": "~0.2.0","grunt-contrib-jshint": "~0.1.1","grunt-contrib-less": "~0.5.0","grunt-contrib-uglify": "~0.1.1","grunt-contrib-copy": "~0.4.0","grunt-contrib-qunit": "~0.1.1","grunt-css": "~0.5.4","grunt-contrib-clean": "~0.4.0","grunt-html": "~0.3.3","grunt-contrib-concat": "~0.1.3" } }
BR,@H_624_12@mybecks
所以你甚至可以这样做:
-Project --subproject1 ---node_modules --subproject2 --subproject3 --node_modules
subproject1可以访问Project / subproject1 / node_modules和Project / node_modules内的所有npms,而subproject2和subproject3只能在Project / node_modules中找到
更新
有一个很少的文档功能,称为grunt集合.它需要一些设置,但是您不需要每个子项目中所有grunt插件的副本.
这是文件布局
-Project --subproject1 ---node_modules ----grunt-collection -----package.json --subproject2 ... --subproject3 ... --node_modules ---grunt ---grunt-contrib-concat ---grunt-contrib-jshint ---grunt-contrib-qunit ---grunt-contrib-watch ---grunt-html ---grunt-contrib-clean ---grunt-contrib-copy ---grunt-contrib-less ---grunt-contrib-uglify ---grunt-css --package.json
项目/的package.json
{ "description": "subproject","version": "0.0.0","name": "Lorem","devDependencies": { "grunt": "*","grunt-contrib-watch": "~0.2.0","grunt-contrib-concat": "~0.1.3" } }
项目/ subproject1 /的package.json
{ "description": "subproject","devDependencies": { } }
Project / subproject1 / Gruntfile.js摘录(您只需要grunt-collection任务).
grunt.loadNpmTasks('grunt-collection'); // grunt.loadNpmTasks('grunt-contrib-jshint'); // grunt.loadNpmTasks('grunt-html'); // grunt.loadNpmTasks('grunt-css'); // grunt.loadNpmTasks('grunt-contrib-less'); // grunt.loadNpmTasks('grunt-contrib-copy');
项目/ subproject1 / node_modules /咕噜收集/的package.json
{ "description": "subproject","dependencies": { "grunt-contrib-watch": "~0.2.0","grunt-contrib-concat": "~0.1.3" },"keywords": ["gruntcollection"] }
关键是在每个子项目中创建一个只包含一个package.json的小模块,其中包含关键字gruntcollection,并包含您的Grunfile使用的依赖关系.
然后,Grunt将使用相同的策略要求使用它们,这意味着它们可以在您的父项目的node_modules中找到.
注意事项:通过使用package.json的依赖项标记,grunt收集工作的方式,这意味着您无法使用Npm安装进行安装,但应该能够存储源控件.
以上是大佬教程为你收集整理的node.js – 在具有子项目的项目中集中node_modules全部内容,希望文章能够帮你解决node.js – 在具有子项目的项目中集中node_modules所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。