首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

为 Bluemix 上运行的 Node.js 应用程序自动收集法律报告(2)

为 Bluemix 上运行的 Node.js 应用程序自动收集法律报告(2)

第 3 步. 收集服务器端依赖项(npm 模块)
  • 将 grunt-license-finder Node                        模块添加到项目中。从项目的根目录运行以下命令:
    1
    npm install grunt-license-finder –-save-dev




  • 安装该插件后,在您的 Gruntfile.js 文件中应使用以下 JavaScript 代码启用该插件:
    1
    grunt.loadNpmTasks(‘grunt-license-finder');




  • 在项目的 Gruntfile.js 文件中,将一个名为 license_finder 的节添加到已传入                    grunt.initConfig() 中的数据对象中:
    1
    2
    3
    4
    5
    6
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        license_finder: {
          
        }
      });




    这个新节是指定各种选项的地方,这些选项用于生成报告。您可为服务器端依赖项创建两个不同的报告:一个用于生产依赖项,一个用于开发依赖项。
    生产依赖项由应用程序在服务器运行时部署和使用。开发依赖项是仅在开发和自动化期间使用的库,比如刚刚添加到项目的                        grunt 和                        grunt-license-finder。
    将一个依赖项添加到 package.json                        文件中时,可将它添加到开发依赖项或生产依赖项中。
  • 为 license_finder                    任务添加两个目标,每种类型的依赖项一个目标,以便它生成两个单独的文件并更容易识别生产和开发依赖项。为此,在                    license_finder 节中添加两个目标。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        license_finder: {
            dev: {
                options: {
                    production: false,
                    out: 'npm-dev-licenses.csv',
                    csv: true
                }
            },
            prod: {
                options: {
                    production: true,
                    out: 'npm-prod-licenses.csv',
                    csv: true
                }
            }
        }
    });




    您可更改这些选项,使其与您想要的配置匹配。production                        选项指定它生成生产还是开发依赖项。out 选项定义该报告的输出文件,csv                        选项指定为报告生成一个 csv 文件。
  • 您还需要创建一个目标任务,从而通过 license_finder                    调用这两个任务:一个用于生产报告,一个用于开发报告。将以下代码行添加到 Gruntifle.js 文件中:
    1
    grunt.registerTask('server-side-license', ['license_finder:dev', 'license_finder:prod']);




  • 更改服务器端依赖项后,完成 Gruntfile.js 文件。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    module.exports = function (grunt) {

        grunt.initConfig({
            pkg: grunt.file.readJSON('package.json'),
            license_finder: {
                dev: {
                    options: {
                        production: false,
                        out: 'npm-dev-licenses.csv',
                        csv: true
                    }
                },
                prod: {
                    options: {
                        production: true,
                        out: 'npm-prod-licenses.csv',
                        csv: true
                    }
                }
            }
        });

        grunt.task.loadTasks('build_tasks');
        grunt.loadNpmTasks('grunt-license-finder');

        grunt.registerTask('server-side-license', ['license_finder:dev', 'license_finder:prod']);

    };




  • 现在您可从 Grunt 命令行运行 server-side-license 任务。
    1
    grunt server-side-license




    输出应该如下所示:
    1
    2
    3
    4
    5
    6
    7
    8
    Running "license_finder:dev" (license_finder) task
    Retrieved license information
    License information written to: npm-dev-licenses.csv
    Running "license_finder:prod" (license_finder) task
    Retrieved license information
    License information written to: npm-prod-licenses.csv

    Done, without errors.




返回列表