用Grunt构建Durandal(R.js + Text)

Kye*_*ica 5 requirejs gruntjs requirejs-text durandal grunt-contrib-requirejs

我想使用Grunt建立一个Durandal项目,因为Weyland完全没有文档记录,并不像Grunt那样标准.

为此,grunt任务需要在优化期间引入所有js和html文件,但我无法通过文本模块让RequireJS内联html文件.

看起来weyland 手动复制文本文件,但我无法弄清楚它是如何让requirejs(或杏仁,在这种情况下)实际使用它们.我已经看到了这个问题,但它需要在define调用中引用文本模块,这在Durandal中没有完成.

我的for gruntfile使用此配置

requirejs: {
            build: {
                options: {                  
                    name: '../lib/require/almond-custom', //to deploy with require.js, use the build's name here instead
                    insertRequire: ['main'], //needed for almond, not require
                    baseUrl: 'src/client/app',
                    out: 'build/main-built.js',
                    mainConfigFile: 'src/client/app/main.js', //needed for almond, not require
                    wrap: true, //needed for almond, not require
                    paths: {
                        'text': '../lib/require/text',
                        'durandal':'../lib/durandal/js',
                        'plugins' : '../lib/durandal/js/plugins',
                        'transitions' : '../lib/durandal/js/transitions',
                        'knockout': '../lib/knockout-2.3.0',
                        'bootstrap': '../lib/bootstrap.min',
                        'jquery': '../lib/jquery-1.9.1',
                        'Q' : '../lib/q.min'
                    },
                    inlineText: true,
                    optimize: 'none',
                    stubModules: ['text']               
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

Rai*_*rit 5

您可能想尝试https://npmjs.org/package/grunt-durandal.我正在使用它作为基于grunt的构建过程的一部分.有关示例,请参阅https://github.com/RainerAtSpirit/HTMLStarterKitPro.

durandal: {
    main: {
        src: ['app/**/*.*', 'lib/durandal/**/*.js'],
            options: {
            name: '../lib/require/almond-custom',
                baseUrl: requireConfig.baseUrl,
                mainPath: 'app/main',
                paths: mixIn({}, requireConfig.paths, { 'almond': '../lib/require/almond-custom.js' }),
                exclude: [],
                optimize: 'none',
                out: 'build/app/main.js'
        }
    }
},
Run Code Online (Sandbox Code Playgroud)