Как создать приложение Durandal, используя потребность в inireJS? -- build поле с участием requirejs поле с участием durandal поле с участием requirejs-optimizer пол Связанный проблема

How to build durandal app using requirejs?


1
vote

проблема

русский

Я использую Gulp-durandal, но он только поддерживает здание в один файл.

Теперь я хочу использовать EMENJS и bundles функцию, но не могу заставить его работать еще.

Это файл Gulp, который я использовал:

 <код> var requirejs = require('requirejs'); var gulp = require('gulp');  var requireJsOptimizerConfig = {     out: '../dist/main-built.js',     baseUrl: 'app',     name: 'main',     paths: {         requireLib: '../scripts/require',     },     include: [         "requireLib",     ],     insertRequire: ['main'],     bundles: { },     mainConfigFile: 'main.js', };  gulp.task('build', function () {     requirejs.optimize(requireJsOptimizerConfig); });   

и <код> main.js файл выглядит так:

 <код> requirejs.config({     paths: {         'text': '../lib/require/text',         'durandal':'../lib/durandal/js',         'plugins' : '../lib/durandal/js/plugins',         'transitions' : '../lib/durandal/js/transitions',         'knockout': '../lib/knockout/knockout-3.4.0',         'bootstrap': '../lib/bootstrap/js/bootstrap',         'jquery': '../lib/jquery/jquery-1.9.1'     },     shim: {         'bootstrap': {             deps: ['jquery'],             exports: 'jQuery'        }     } });  define([...], function(){ ... });   

Хотя Gulp Ran без какой-либо ошибки, когда я пошел на сайт, есть один странный HTTP-запрос:

 <код> http://localhost:8080/Scripts/durandal/plugins/widget.js?v=1.0.0.0   

Я предполагаю, что плагины внутри папки <код> durandal/js/plugins не компилируется правильно. Как я могу решить это?

Я попробовал уточнить <код> widget библиотеку явно, но он все еще ищет <код> Scripts папки:

 <код> CheckboxColumn0  

Я также не понимаю, насколько durandal может работать в первую очередь. Потому что, насколько я знаю, вы должны определить каждый отдельные модули, так как эта работа конфигурация может:

 <код> CheckboxColumn1  
Английский оригинал

I'm using gulp-durandal but it only support building into one single file.

Now I want to use requirejs and the bundles feature, but can't make it work yet.

This is the gulp file I used:

var requirejs = require('requirejs'); var gulp = require('gulp');  var requireJsOptimizerConfig = {     out: '../dist/main-built.js',     baseUrl: 'app',     name: 'main',     paths: {         requireLib: '../scripts/require',     },     include: [         "requireLib",     ],     insertRequire: ['main'],     bundles: { },     mainConfigFile: 'main.js', };  gulp.task('build', function () {     requirejs.optimize(requireJsOptimizerConfig); }); 

and the main.js file looks like this:

requirejs.config({     paths: {         'text': '../lib/require/text',         'durandal':'../lib/durandal/js',         'plugins' : '../lib/durandal/js/plugins',         'transitions' : '../lib/durandal/js/transitions',         'knockout': '../lib/knockout/knockout-3.4.0',         'bootstrap': '../lib/bootstrap/js/bootstrap',         'jquery': '../lib/jquery/jquery-1.9.1'     },     shim: {         'bootstrap': {             deps: ['jquery'],             exports: 'jQuery'        }     } });  define([...], function(){ ... }); 

Although gulp ran without any error, when I went to the site, there is one strange HTTP request:

http://localhost:8080/Scripts/durandal/plugins/widget.js?v=1.0.0.0 

I'm guessing that the plugins inside the folder durandal/js/plugins is not compiled correctly. How can I solve this?

I tried specify the widget library explicitly but it still looking for the Scripts folder:

paths: {     requireLib: '../scripts/require',     'widget': '../Scripts/durandal/plugins/widget', }, include: [     "requireLib",     'widget', ], 

I also don't understand how durandal can run in the first place. Because, as far as I know, you have to define each individual modules, so how can this config work:

paths: {     plugins' : '../lib/durandal/js/plugins' } 
</div
           

Список ответов

0
 
vote
vote
Лучший ответ
 

Я нашел решение. Первое, что <код> requirejs и <код> rjs 2 разных вещей.

<Код> requirejs Поддержка <код> bundles , но <код> rjs , инструмент, который делает здание / оптимизацию, не имеет этой опции.

Итак, мы должны строить все пакеты вручную. И чем, через <код> bundles опция, скажите <код> requirejs обо всех этих связках, что внутри них, добавив этот код:

 <код> require.config({     bundles: {         bundle1: ['file1', 'file2'],         ...     } });   

Когда нужен файл, <код> requirejs будет смотреть в эту «карту» и загрузить пакет, который содержит этот файл, если он еще не загружен.

Я изменил оригинал <код> gulp-durandal базы на работе stevesanderson: durandal- Bundler.js ; gulpfile.js

Презентация Stevesanderson:

http://vimeo.com/97519516

https://github.com/stevesanderson/generator-ko

 

I found the solution. The first thing is that requirejs and rjs are 2 different things.

requirejs support bundles, but rjs, the tool that do the building/optimization, doesn't have this option.

So we have to build every bundles manually. And than, through the bundles option, tell requirejs about all those bundles, what inside them, by adding this code:

require.config({     bundles: {         bundle1: ['file1', 'file2'],         ...     } }); 

When a file is needed, requirejs will look into this "map" and load the bundle that contains that file, if it is not already loaded.

I've modified the original gulp-durandal base on SteveSanderson's work: durandal-bundler.js; gulpfile.js

SteveSanderson's presentation:

http://vimeo.com/97519516

https://github.com/SteveSanderson/generator-ko

</div
 
 

Связанный проблема

6  Ошибка в Кордове, когда введите "Cordova build android"  ( Error in cordova when type cordova build android ) 
Когда я делаю Cordova построить Android в CMD, он дает ошибку: <код> C:workspace wo>cordova build android ANDROID_HOME=C:Program FilesAndroidandroid-sdk JAV...

1  Как изменить время сборки NetBeans с секунды до миллисекунды или наносекунды?  ( How do i change netbeans build time from seconds to milliseconds or nanoseconds ) 
Название говорит все это. Мне нужно сравнить 2 маленьких класса, которые похожи в использовании и размере RAM, и они имеют одинаковое время сборки в считанные...

0  Автоматически строить проект Maven в случае обновления зависимости  ( Automatically build maven project in case of a dependency upgrade ) 
Я использую Jenkins для CI / CD. Дженкинс интегрирован с моим учетной записью GIT и, как только появится обновление в коде, Jenkins построит его автоматически...

278  Что такое плагинманагемент в Pom.xml Maven?  ( What is pluginmanagement in mavens pom xml ) 
Это фрагмент моего файла POM. <Код> .... <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> ...

0  Безусловное здание WxWidgets образец (образец виджетов), в кодовых блоках  ( Unsuccessful building wxwidgets sample widgets sample in codeblocks ) 
Я использую CodeBlocks 13.12 на компьютере Win 7 X64. Мое намерение было узнать немного о создании проекта WXWidgets в CodeBlocks, поэтому я создал новый прое...

0  Android Build не удается с неизвестной причиной после обновления Android-SDK  ( Android build fails with unknown reason after upgrading android sdk ) 
Я работаю со старой версией <код> Unity 4.0 , чтобы использовать какой-то старый плагин. После моего неправильного шага модернизации Android SDK Unity дает ош...

-1  Scons: Предупреждение: Вызов отсутствующего Sconscript без ошибок устарел  ( Scons warning calling missing sconscript without error is deprecated ) 
Я пытаюсь построить простой печатный helloworld, используя инструмент сборки Scons. Мой файл helloworld.c содержит: <код> #include "stdio.h" int main() { ...

16  Бег маленьких программ C ++ в Visual Studio без создания проектов  ( Running small c programs in visual studio without creating projects ) 
Есть ли способ построить / запустить небольшие программы C ++, в Visual Studio без создания проектов? Например, если у меня есть файл <код> hello.cpp , могу...

0  Как создать сборку с AMD Dojo  ( How to create build from amd dojo ) 
dojo довольно новый для меня, у меня есть некоторое недоразумение и отсутствие знаний. Мое приложение (разработанное кем-то еще) использовать AMD Dojo 1.8 (...

0  iOS: MwPhotobrowser Build на устройстве  ( Ios mwphotobrowser build on device ) 
Сегодня я добавил в мой проект <код> MWPhotoBrowser с использованием <код> cocoapods контроль источника. Тесты в эмуляторе, где правильно, но когда я начи...

1  Детонация - Codemagic - IOS сборки не в состоянии  ( Flutter codemagic ios build fail ) 
<Р> Я пытаюсь создать приложение для IOS сделали с флаттера. <Р> Я не имею макинтош устройства, чтобы сделать работу, так что я пытаюсь создать свой файл IPA ...

1  Сборка проекта столкнулась с проблемой Eclipse C ++  ( Build project has encountered a problemm eclipse c ) 
Детали говорят, что у меня есть два разных инструмента одного и того же компилятора. Я не уверен, куда идти отсюда, чтобы исправить это, так что я могу постро...

3  Здание с rpmbuild под Ubuntu  ( Building with rpmbuild under ubuntu ) 
Мне нужно построить ням с патчем под Ubuntu 10.4 (причина в том, что мне нужен ням с поддержкой Chroot для моего экземпляра VSERVER) Поскольку yum src для u...

0  Построить ошибку на Гресе: не может найти символ  ( Build error on gradle cannot find symbol ) 
Rouletteblock.java Rickle Build Ошибка <код> /root/pirate-roulette/src/main/java/com/nemosw/spigot/pirateroulette/RouletteBlock.java:158: error: cannot find...

3  Что я делаю не так, пытаясь развернуть с помощью Mightion Mightion Enternal (Ant)  ( What am i doing wrong in trying to deploy with the force com migration tool ant ) 
В настоящее время я пытаюсь работать через урок Salesforce.com на « Развертывание с помощью инструмента миграции Force.com (Ant) ». Я уверен, что я что-то у...

Связанный проблема

6  Ошибка в Кордове, когда введите "Cordova build android" 
1  Как изменить время сборки NetBeans с секунды до миллисекунды или наносекунды? 
0  Автоматически строить проект Maven в случае обновления зависимости 
278  Что такое плагинманагемент в Pom.xml Maven? 
0  Безусловное здание WxWidgets образец (образец виджетов), в кодовых блоках 
0  Android Build не удается с неизвестной причиной после обновления Android-SDK 
-1  Scons: Предупреждение: Вызов отсутствующего Sconscript без ошибок устарел 
16  Бег маленьких программ C ++ в Visual Studio без создания проектов 
0  Как создать сборку с AMD Dojo 
0  iOS: MwPhotobrowser Build на устройстве 
1  Детонация - Codemagic - IOS сборки не в состоянии 
1  Сборка проекта столкнулась с проблемой Eclipse C ++ 
3  Здание с rpmbuild под Ubuntu 
0  Построить ошибку на Гресе: не может найти символ 
3  Что я делаю не так, пытаясь развернуть с помощью Mightion Mightion Enternal (Ant) 



© 2021 www.qaru.top All Rights Reserved. Q&A House все права защищены


Licensed under cc by-sa 3.0 with attribution required.