Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了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

解决方法

这是开箱即用的. npm在当前目录中查找node_modules,并且其所有父目录,然后查找全局位置.

所以你甚至可以这样做:

-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,请注明来意。