generator-sublime
Version:
Yeoman generator for scaffolfding the standard configuration root files like .gitignore, .jshintrc, .jscsrc etc...
171 lines (166 loc) • 6.14 kB
JavaScript
;
var getRepository = function() {
var repository = '<%= Repository %>';
try {
var helper = require('./helper');
var packageJson = helper.readJsonFile('./package.json');
var _ = require('lodash');
if (_.isString(packageJson.repository)) {
repository = packageJson.repository.replace('.git', '');
} else {
repository = packageJson.repository.url.replace('.git', '');
}
} catch (err) {}
return repository;
};
var getAppname = function() {
var appname;
try {
var helper = require('./helper');
var packageJson = helper.readJsonFile('./package.json');
appname = packageJson.name;
} catch (err) {}
return appname;
};
module.exports = function() {
var cwd = process.env.INIT_CWD || '';
var clientFolder = '<%= clientFolder%>'; // the source file folder
var defaultTarget = 'app'; // the name of the app that corresponds to index.html
var constants = {
cwd: cwd,
maxBuffer: 1024 * 500,
appname: getAppname(),
defaultTarget: defaultTarget,
targetName: '{{targetName}}',
targetSuffix: '{{targetSuffix}}',
mode: '{{mode}}',
clientFolder: clientFolder,
repository: getRepository(),
versionFiles: ['./package.json', './bower.json', './' + clientFolder + '/config*.xml'],
cordova: {
src: './' + clientFolder + '/cordova/{{targetName}}',
icon: './' + clientFolder + '/icons/{{targetName}}/icon.png',
splash: './' + clientFolder + '/icons/{{targetName}}/splash.png',
platform: 'ios',
iconBackground: '#fff'
},
lint: [
'./' + clientFolder + '/scripts/**/*.js',
'!./' + clientFolder + '/scripts/bundle*.js',
'!./' + clientFolder + '/scripts/lbServices.js',
'!./' + clientFolder + '/scripts/ionic.io.bundle*.js',
'./server/**/*.js', 'gulpfile.js', './gulp_tasks/**/*.js', 'karma.conf.js', 'webpack.config.js', 'protractor.conf.js', './protractor/**/*.js', './test/**/*.js'
],
fonts: {
src: <%- fonts %>, // you can also add a specific src_appname
dest: 'fonts'
},
html: {
src: './' + clientFolder + '/index{{targetSuffix}}.html'
},
images: {
src: [
'./' + clientFolder + '/images/{{targetName}}/**/*', './' + clientFolder + '/images/*.*',
'./' + clientFolder + '/icons/{{targetName}}/**/*', './' + clientFolder + '/icons/*.*'
],
minify: true
},
style: {
watchFolder: ['./' + clientFolder + '/styles/**/*.scss', './' + clientFolder + '/styles/**/*.less'],
dest: 'styles',
destName: 'main.css',
sass: {
src: ['./' + clientFolder + '/styles/main{{targetSuffix}}.scss']
},
less: {
src: ['./' + clientFolder + '/styles/main{{targetSuffix}}.less']
}
},
script: {
dest: 'scripts'
},
browserify: {
src: './' + clientFolder + '/scripts/main{{targetSuffix}}.js'
},
webpack: {
src: './main{{targetSuffix}}.js'
},
exorcist: {
dest: 'srcmaps',
mapExtension: '.map.js'
},
sentry: {
targetKeys: {
app: '' // fill in your sentry.com DSN here, without the part between the colon (:) and the at-symbol (@)
},
normalizedURL: true, // true, false, or an url. When true it will default to 'http://localhost:' + serve.port
organizationName: '',
auth: ''
},
ionic: {
ionicPlatform: {
installer: 'node_modules', // or 'bower_components'
moduleName: 'ionic-platform-web-client',
bundleSrc: 'dist',
bundleFiles: ['ionic.io.bundle.js', 'ionic.io.bundle.min.js'],
bundleDest: './' + clientFolder + '/scripts/',
settingsReplaceStart: '\\\"IONIC_SETTINGS_STRING_START\\\";',
settingsReplaceEnd: '\\\"IONIC_SETTINGS_STRING_END\\\"',
settingsReplaceString: 'return { get: function(setting) { if (settings[setting]) { return settings[setting]; } return null; } };'
},
app: { // fill in this object with your ionic.io platform details
app_id: '',
api_key: '',
name: '',
dev_push: true,
gcm_key: ''
}
},
serve: {
host: 'localhost', //'0.0.0.0',
port: 5000,
https: false,
open: true,
browser: ['google chrome'], // ['google chrome', 'firefox'],
localtunnel: false, // true, false or '<%= appname %>'
ghostMode: {
clicks: false,
forms: false,
scroll: false
}
},
mocha: {
libs: ['server/**/*.js'],
tests: ['test/mocha/**/*.js'],
globals: 'test/mocha/helpers/globals.js',
timeout: 5000
},
e2e: {
src: ['./test/e2e/{{targetName}}/tests.protractor.js'],
port: 5555,
configFile: 'protractor.conf.js'
},
dist: {
distFolder: './dist/{{targetName}}/{{mode}}'
},
testfairy: {
api_key: '',
ios_app_token: '',
metrics: 'cpu,network,logcat,memory,battery,gps',
testersGroups: 'all',
maxDuration: '15m',
autoUpdate: 'on',
iconWatermark: 'on'
},
bundleName: 'bundle.js',
moduleManager: 'browserify', // or webpack
graph: {
graphvizbin: '/usr/local/bin',
outputName: 'graph-dependency.png'
},
csv: {
dir : './test/assets'
}
};
return constants;
};