是否可以为存储库中的多个项目使用一个node_module文件夹?

Is it possible to have one node_module folder for multiple projects in a repository?

本文关键字:一个 node 文件夹 module 项目 存储 是否      更新时间:2023-09-26

假设我们有一个名为REPO的存储库,其中包含几个grunt项目。假设我们想要这个结构:

ROOT
-- bower_components
-- node_modules
-- project_1
-- project_2
-- project_3 etc

现在的问题是,我需要为每个项目一个不同的gruntfile.js,所以我可以有例如不同的分布式最小化的js文件,不同的任务等。

我现在得到的解决方案,但没有任何帮助是,每个项目文件夹有它自己的node_module文件夹与所有需要的模块。

我已经有了这个,我想把它改成上面的模式。

ROOT
-- bower_components
-- project_1
---- node_modules
-- project_2
---- node_modules
-- project_3
---- node_modules

现在每个gruntfile看起来像这样:

function config(name) {
  return require ('./tasks/' + name + '.js');
}
module.exports = function (grunt){
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    jshint: config('jshint'),
    concat: config('concat'),
    uglify: config('uglify'),
    cssmin: config('cssmin'),
    jsbeautifier: config('jsbeautifier'),
    watch: {
      options: {livereload: true},
      files: ['index.html', 'app/views/**/*.html', 'app/css/*.css', 'js/*.js'],
      tasks: ['jshint']
    },
    karma: {
      unit: {
        configFile: 'test/test.conf.js'
      }
    }
  });
  //load plugins
  grunt.loadNpmTasks('grunt-contrib-jshint');
  grunt.loadNpmTasks('grunt-contrib-concat');
  grunt.loadNpmTasks('grunt-contrib-uglify');
  grunt.loadNpmTasks('grunt-contrib-cssmin');
  grunt.loadNpmTasks('grunt-jsbeautifier');
  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-karma');
  //tasks
  grunt.registerTask('dist', ['jshint', 'concat', 'uglify', 'cssmin', 'jsbeautifier']);
  grunt.registerTask('default', ['watch']);
};

我可以为每个NpmTask添加一个路径,而不是在我的REPO中为每个项目安装模块吗?

如果你需要更多的信息或我的英语不好请问我,我会更新我的问题。

谢谢

您可以使用load-grunt-parent-tasks来完成此操作。

我知道我没有使用这个插件,但我想我会帮助你。