为 Bluemix 上运行的 Node.js 应用程序自动收集法律报告(2)
- UID
- 1066743
|
为 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.
|
|
|
|
|
|
|