Сборщик веб-приложений nullpointer на основе:
- node.js
- npm
- grunt-cli
npm install grunt-cli -g
- bower
npm install bower -g
{
...
"devDependencies": {
...
"grunt": "*",
"grunt-contrib-clean": "*",
"grunt-contrib-jshint": "*",
"grunt-contrib-copy": "*",
"grunt-bower-task": "*",
"lodash": "*", // опционально
"lodash-deep": "*", // опционально
"nullpointer-web-app": "newpointer/web-app.git"
}
}
// Пример настройки сборщика для приложения nkb-app проекта rsearch
//
var _ = require("lodash"), // опционально
_d = require("lodash-deep"), // опционально
path = require('path'), // опционально
webapp = require('nullpointer-web-app');
_.mixin(_d);
//
module.exports = function(grunt) {
// инициализация приложения
webapp.setBuildMeta({
appId: 'rsearch',
APP_BUILD_TYPE: 'production',
cwd: __dirname,
name: 'nkb-app',
rootpath: '/rsearch/'
});
// инициализация Grunt по умолчанию, если не используется расширение сборщика
// webapp.initGrunt(grunt);
// расширение сборщика, опционально
//
var gruntConfig = webapp.getDefaultGruntConfig(),
buildMeta = webapp.getBuildMeta();
// расширение copy, опционально
_.deepGet(gruntConfig, 'copy.dist.src').push('src/nkb-app/opensearch.xml');
// расширение i18n, опционально
_.deepSet(gruntConfig, 'i18n.ui_keys.options', {
mode: 'simple',
pattern: '**/*.txt',
inputDir: path.resolve(__dirname, 'i18n/ui_keys/src'),
inputRootPath: path.resolve(__dirname, ''),
outputDir: path.resolve(__dirname, 'i18n/ui_keys'),
bundleDir: path.resolve(__dirname, 'src/l10n/ui_keys'),
baseLang: buildMeta.langs[0],
langs: buildMeta.langs
});
// инициализация Grunt
webapp.initGrunt(grunt, gruntConfig);
// ваш код для Grunt
// ...
};
npm install
Установка зависимостей: bower
, ...
grunt init
Сбор ключей перевода, формирование бандлов перевода
nullpointer-i18n-bin/docs/build.md
grunt i18n
grunt jshint
Установка зависимостей, проверка кода, оптимизация, дистрибутив
grunt build
Удаление зависимостей, сборки
grunt cleanup