Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 224547
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T19:19:37+00:00 2026-05-11T19:19:37+00:00

How do I include a JavaScript file inside another JavaScript file, similar to @import

  • 0

How do I include a JavaScript file inside another JavaScript file, similar to @import in CSS?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-11T19:19:37+00:00Added an answer on May 11, 2026 at 7:19 pm

    The old versions of JavaScript had no import, include, or require, so many different approaches to this problem have been developed.

    But since 2015 (ES6), JavaScript has had the ES6 modules standard to import modules in Node.js, which is also supported by most modern browsers.

    For compatibility with older browsers, build tools like Webpack and Rollup and/or transpilation tools like Babel can be used.

    ES6 Modules

    ECMAScript (ES6) modules have been supported in Node.js since v8.5, with the --experimental-modules flag, and since at least Node.js v13.8.0 without the flag. To enable "ESM" (vs. Node.js’s previous CommonJS-style module system ["CJS"]) you either use "type": "module" in package.json or give the files the extension .mjs. (Similarly, modules written with Node.js’s previous CJS module can be named .cjs if your default is ESM.)

    Using package.json:

    {
        "type": "module"
    }
    

    Then module.js:

    export function hello() {
      return "Hello";
    }
    

    Then main.js:

    import { hello } from './module.js';
    let val = hello();  // val is "Hello";
    

    Using .mjs, you’d have module.mjs:

    export function hello() {
      return "Hello";
    }
    

    Then main.mjs:

    import { hello } from './module.mjs';
    let val = hello();  // val is "Hello";
    

    ECMAScript modules in browsers

    Browsers have had support for loading ECMAScript modules directly (no tools like Webpack required) since Safari 10.1, Chrome 61, Firefox 60, and Edge 16. Check the current support at caniuse. There is no need to use Node.js’ .mjs extension; browsers completely ignore file extensions on modules/scripts.

    <script type="module">
      import { hello } from './hello.mjs'; // Or the extension could be just `.js`
      hello('world');
    </script>
    
    // hello.mjs -- or the extension could be just `.js`
    export function hello(text) {
      const div = document.createElement('div');
      div.textContent = `Hello ${text}`;
      document.body.appendChild(div);
    }
    

    Read more at https://jakearchibald.com/2017/es-modules-in-browsers/

    Dynamic imports in browsers

    Dynamic imports let the script load other scripts as needed:

    <script type="module">
      import('hello.mjs').then(module => {
          module.hello('world');
        });
    </script>
    

    Read more at https://developers.google.com/web/updates/2017/11/dynamic-import

    Node.js require

    The older CJS module style, still widely used in Node.js, is the module.exports/require system.

    // mymodule.js
    module.exports = {
       hello: function() {
          return "Hello";
       }
    }
    
    // server.js
    const myModule = require('./mymodule');
    let val = myModule.hello(); // val is "Hello"   
    

    There are other ways for JavaScript to include external JavaScript contents in browsers that do not require preprocessing.

    AJAX Loading

    You could load an additional script with an AJAX call and then use eval to run it. This is the most straightforward way, but it is limited to your domain because of the JavaScript sandbox security model. Using eval also opens the door to bugs, hacks and security issues.

    Fetch Loading

    Like Dynamic Imports you can load one or many scripts with a fetch call using promises to control order of execution for script dependencies using the Fetch Inject library:

    fetchInject([
      'https://cdn.jsdelivr.net/momentjs/2.17.1/moment.min.js'
    ]).then(() => {
      console.log(`Finish in less than ${moment().endOf('year').fromNow(true)}`)
    })
    

    jQuery Loading

    The jQuery library provides loading functionality in one line:

    $.getScript("my_lovely_script.js", function() {
       alert("Script loaded but not necessarily executed.");
    });
    

    Dynamic Script Loading

    You could add a script tag with the script URL into the HTML. To avoid the overhead of jQuery, this is an ideal solution.

    The script can even reside on a different server. Furthermore, the browser evaluates the code. The <script> tag can be injected into either the web page <head>, or inserted just before the closing </body> tag.

    Here is an example of how this could work:

    function dynamicallyLoadScript(url) {
        var script = document.createElement("script");  // create a script DOM node
        script.src = url;  // set its src to the provided URL
       
        document.head.appendChild(script);  // add it to the end of the head section of the page (could change 'head' to 'body' to add it to the end of the body section instead)
    }
    

    This function will add a new <script> tag to the end of the head section of the page, where the src attribute is set to the URL which is given to the function as the first parameter.

    Both of these solutions are discussed and illustrated in JavaScript Madness: Dynamic Script Loading.

    Detecting when the script has been executed

    Now, there is a big issue you must know about. Doing that implies that you remotely load the code. Modern web browsers will load the file and keep executing your current script because they load everything asynchronously to improve performance. (This applies to both the jQuery method and the manual dynamic script loading method.)

    It means that if you use these tricks directly, you won’t be able to use your newly loaded code the next line after you asked it to be loaded, because it will be still loading.

    For example: my_lovely_script.js contains MySuperObject:

    var js = document.createElement("script");
    
    js.type = "text/javascript";
    js.src = jsFilePath;
    
    document.body.appendChild(js);
    
    var s = new MySuperObject();
    
    Error : MySuperObject is undefined
    

    Then you reload the page hitting F5. And it works! Confusing…

    So what to do about it ?

    Well, you can use the hack the author suggests in the link I gave you. In summary, for people in a hurry, he uses an event to run a callback function when the script is loaded. So you can put all the code using the remote library in the callback function. For example:

    function loadScript(url, callback)
    {
        // Adding the script tag to the head as suggested before
        var head = document.head;
        var script = document.createElement('script');
        script.type = 'text/javascript';
        script.src = url;
    
        // Then bind the event to the callback function.
        // There are several events for cross browser compatibility.
        script.onreadystatechange = callback;
        script.onload = callback;
    
        // Fire the loading
        head.appendChild(script);
    }
    

    Then you write the code you want to use AFTER the script is loaded in a lambda function:

    var myPrettyCode = function() {
       // Here, do whatever you want
    };
    

    Then you run all that:

    loadScript("my_lovely_script.js", myPrettyCode);
    

    Note that the script may execute after the DOM has loaded, or before, depending on the browser and whether you included the line script.async = false;. There’s a great article on Javascript loading in general which discusses this.

    Source Code Merge/Preprocessing

    As mentioned at the top of this answer, many developers use build/transpilation tool(s) like Parcel, Webpack, or Babel in their projects, allowing them to use upcoming JavaScript syntax, provide backward compatibility for older browsers, combine files, minify, perform code splitting etc.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 113k
  • Answers 113k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer It turns out that order is important in Criteria::addJoin(); changing… May 11, 2026 at 10:03 pm
  • Editorial Team
    Editorial Team added an answer I can't see any benefit in implement IQueryable<T> - that… May 11, 2026 at 10:03 pm
  • Editorial Team
    Editorial Team added an answer I did this by just checking myContent.Controls.Count.. However, you obviously… May 11, 2026 at 10:03 pm

Related Questions

I have some code in a javascript file that needs to send queries back
How do you include a javascript or CSS file only on a certain article
I find this excellent code, posted by aemkei as answers to this questions: How
I have a JS script that will be hosted on my server and that
How do you localize ASP.NET + javascript + Silverlight? I would like to be

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.