- , , Sail /uglify javascript "sails lift -prod" javascript, JS, CSS .
2 - layout.ejs layoutadmin.ejs. /assets/jsadmin, admin javascript. existing/assets/js folder as-is javascript -.
, /assets/js ( , layout.ejs):
/assets/jsadmin ( "" , layoutadmin.ejs. ):
.
...
( ), , assets/jsadmin js .
tasks/pipe.js, jsAdminFilesToInject, jsFilesToInject, , js jsAdmin.
var jsAdminFilesToInject = [
// Load sails.io before everything else
//'jsAdmin/dependencies/sails.io.js',
// Dependencies like jQuery, or Angular are brought in here
'jsAdmin/dependencies/**/*.js',
// All of the rest of your client-side js files
// will be injected here in no particular order.
'jsAdmin/**/*.js'
];
. pipe.js.
module.exports.jsAdminFilesToInject = jsAdminFilesToInject.map(function(path) {
return '.tmp/public/' + path;
});
tasks/config/sails-linker.js, devJsAdmin, .jsAdminFilesToInject, pipe.js .
devJsAdmin: {
options: {
startTag: '',
endTag: '',
fileTmpl: '<script src="%s"></script>',
appRoot: '.tmp/public'
},
files: {
'.tmp/public/**/*.html': require('../pipeline').jsAdminFilesToInject,
'views/**/*.html': require('../pipeline').jsAdminFilesToInject,
'views/**/*.ejs': require('../pipeline').jsAdminFilesToInject
}
},
tasks/register/linkAssets.js, devJsAdmin.
'sails-linker:devJsAdmin',
, :
sails lift
http://localhost:1337/home - , layout.ejs, ( js):
<script src="/js/dependencies/sails.io.js"></script>
<script src="/js/jquery-1.10.2.js"></script>
http://localhost:1337/admin - , layoutadmin.ejs, (, jsAdmin):
<script src="/jsAdmin/dependencies/jquery-1.10.2.js"></script>
<script src="/jsAdmin/knockout-3.3.0.debug.js"></script>
...
(sails lift --prod), , , javascript, SCRIPTS_ADMIN.
jsAdmin grunt tasks/config/concat.js, jsAdminFilesToInject pipe.js concat/productionAdmin.js.
jsAdmin: {
src: require('../pipeline').jsAdminFilesToInject,
dest: '.tmp/public/concat/productionAdmin.js'
},
distAdmin grunt tasks/config/uglify.js, make concat/productionAdmin.js "", min/productionAdmin.min.js.
distAdmin: {
src: ['.tmp/public/concat/productionAdmin.js'],
dest: '.tmp/public/min/productionAdmin.min.js'
}
prodJSAdmin tasks/config/sails-linker.js, min/productionAdmin.min.js SCRIPTS_ADMIN.
prodJsAdmin: {
options: {
startTag: '',
endTag: '',
fileTmpl: '<script src="%s"></script>',
appRoot: '.tmp/public'
},
files: {
'.tmp/public/**/*.html': ['.tmp/public/min/productionAdmin.min.js'],
'views/**/*.html': ['.tmp/public/min/productionAdmin.min.js'],
'views/**/*.ejs': ['.tmp/public/min/productionAdmin.min.js']
}
},
, prodJSAdmin prod grunt, prod.js.
'sails-linker:prodJsAdmin',
:
sails lift --prod
http://localhost:1337/home - , , ( production.min.js):
<script src="/min/production.min.js"></script>
http://localhost:1337/admin - , layoutadmin.ejs, ( productionAdmin.min.js):
<script src="/min/productionAdmin.min.js"></script>