2015-05-19 3 views
0

У меня есть веб-приложение, с помощью простого index.html файла:JavaScript: изменение файлов в исходные тексты на окружающую среду

<!DOCTYPE html> 
    <head> 
    </head> 
    <body> 
     <script src="assets/js/scripts.min.js"></script> 
    </body> 
</html> 

Мне нужно изменить src моих статических файлов, так как в производстве они собираются быть в место другое, то в развитии. Но одно требование: я не могу изменить его через сборку.

Так что я думаю о локальном файле, например application.properties, с источником для режима dev и развертывании того же файла в производстве с разными источниками.

Есть ли способ сделать это в JavaScript?

ответ

1

Вы можете проверить, в каком окружении он находится, а затем вставить скрипт в голову или тело в зависимости от текущей среды (dev или prod).

<head> 
 
    <script> 
 
    var script = document.createElement('script'); 
 
    var devmode = /*condition to check if current enviroment is Development or Production*/ true; 
 
    if (devmode === true) { 
 
     // Development Scripr 
 
     script.src = "https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.8.0/lodash.js"; 
 
    } else { 
 
     // Production Script 
 
     script.src = "https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.8.0/lodash..min.js"; 
 
    } 
 
    document.head.appendChild(script); 
 
    </script> 
 
</head>

Примечание: Над раствором работает в большинстве современных браузеров. но рекомендуется использовать хорошие решения AMD, такие как Require.JS, yepnopejs (которые теперь объединены с modernizr) или $script.js и т. д., потому что они заботятся о некоторых случаях кросс-кросс-браузера.

+0

Это хорошая практика? –

+0

@MatheusLima. Require.JS, yepnopejs и т. Д. Все эти загрузчики AMD тоже делают то же самое, но они заставляют слушателей обнаруживать загрузку скриптов. если вы просто хотите добавить скрипты в DOM, то вышеупомянутый подход достаточно хорош. но если вы хотите определить, загружен ли файл js, а после его загруженного инициализации что-то, то вы должны пойти с библиотекой AMD. –

Смежные вопросы