How to use minified javascript?
Asked Answered
M

2

2

I have a grunt tasks to concat and minify all my javascript files into one single file and the javascript file is in dist folder. "dist/<%= pkg.name %>.min.js'"

"Gruntfile.js"

module.exports = function (grunt) {
    grunt.initConfig({
        pkg: grunt.file.readJSON("package.json"),
        concat: {
            options: {
                separator: ';'
            },
            dist: {
                src: ['src/main/resources/app/js/**/*.js',
                    'src/main/resources/app/config/*.js',
                    'src/main/resources/app/app/js'],
                dest: 'dist/<%= pkg.name %>.js'
            }
        },
        uglify: {
            options: {
                banner: '/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n'
            },
            dist: {
                files: {
                    'src/main/resources/app/dist/<%= pkg.name %>.min.js': ['<%= concat.dist.dest %>']
                }
            }
        }
    });
    grunt.loadNpmTasks('grunt-contrib-concat');
    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.registerTask("default", ["concat", "uglify"]);
};

Now, how can I use this minified version of javscript? Moreover, my index.html entry point of my code points to the non-minified version.

"index.html"

<div ui-view/>
<script data-main="config/require-conf" src="vendor/requirejs/require.js"></script>
Molal answered 2/11, 2015 at 4:18 Comment(4)
You use it like any other JavaScript file. "Moreover, my index.html entry point of my code points to the non-minified version." It should point to the minified version.Hollishollister
@FelixKling So, if I have a directory structure for all my javascript files, I have to preserve the directory structure and place the minified javascript files in those respective directory locations so that I can point to those minified versions. Am I correct?Molal
It doesn't matter where you put the file as long as you load it in your HTML file. There really is nothing special about a file containing minified JS code.Hollishollister
@FelixKling I was looking for something like this #22046450. I think I was not clear in my question. But, thanks for your answer. I applied it and my problem is resolved.Molal
A
1

You could use usemin from https://www.npmjs.com/package/grunt-usemin. Usemin, with other tasks as

  • concat
  • uglify
  • cssmin
  • filerev

is able to minify all js and css in one single file. You only need to add a build:js as you can see in snippet below:

<!-- build:js SCLogic.min.js -->
        <!-- Load app main script -->
        <script src="app/app.js"></script>
        <!-- Load services -->
        <script src="app/services/authInterceptorService.js"></script>
        <script src="app/services/authService.js"></script>
        <script src="app/services/blablaService.js"></script>
       

        <!-- Load controllers -->
        <script src="app/controllers/indexController.js"></script>
        <script src="app/controllers/homeController.js"></script>
        <script src="app/controllers/loginController.js"></script>
        <script src="app/controllers/blablaController.js"></script>
        
        <script src="app/directives/validNumber.js"></script>
       
        <script src="app/controllers/angular-locale_es-es.js"></script>
       
        <!-- endbuild -->
Animatism answered 2/11, 2015 at 15:56 Comment(2)
"grunt-usemin is going under some major developments to tackle the long list of issues. As they might break with master they are merged into dev branch."Molal
@Molal You are right, but it work in most cases. I used it and works fine.Animatism
Y
0

You can just include the js file the normal way.

<script src="path to the minified file"></script>

in your index.html. Minified file is just like a normal JS file. What it does is:

  1. It will merge all the mentioned JS files into a single file.
  2. It will then minify it i.e it will remove the white spaces and auto change the variable names.
  3. Advantage of this is you will have a lower size file and a single http request made from your browser which will help you load the page at a faster speed.
Yung answered 2/11, 2015 at 4:47 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.