Javascript 内联require.js文本!呼噜声

Javascript 内联require.js文本!呼噜声,javascript,build,requirejs,gruntjs,requirejs-text,Javascript,Build,Requirejs,Gruntjs,Requirejs Text,我一直在尝试Grunt,今天下午需要JS。我非常喜欢文本模块,并使用它来引入我的模板。在基于非Grunt的项目中,我使用了inlineText和stubModules需要JS选项来串联模板文件,效果非常好。然而,我很难让它与Grunt一起工作 需要配置 require.config({ paths: { // Using Bower for dependency management text: '../components/requirejs-text/

我一直在尝试Grunt,今天下午需要JS。我非常喜欢
文本
模块,并使用它来引入我的模板。在基于非Grunt的项目中,我使用了
inlineText
stubModules
需要JS选项来串联模板文件,效果非常好。然而,我很难让它与Grunt一起工作

需要配置

require.config({
    paths: {
        // Using Bower for dependency management
        text: '../components/requirejs-text/text'
    }
});
用法

define(['text!template.html'], function (html) {
    // Do stuff with html
});
grunfile.js

requirejs: {
    dist: {
        options: {
            baseUrl: 'app/scripts',
            optimize: 'none',
            preserveLicenseComments: false,
            useStrict: true,
            wrap: true,
            inlineText: true,
            stubModules: ['text']
        }
    }
}
运行
grunt
后,控制台中出现了各种错误:

  • /dist/components/requirejs text/text.js
  • 模块的
    加载超时:text!template.html\u未规范化2
那么有两个问题:

  • 它似乎没有内联(然后存根)
    text.js
    代码
  • 它似乎没有内联
    template.html
    文件

知道它为什么不起作用了吗?

您看到了错误,因为您需要向
r.js
指出
文本
模块的位置

您可以通过添加路径配置来实现这一点:

requirejs: {
    dist: {
        options: {
          baseUrl: 'app/scripts',
          optimize: 'none',
          preserveLicenseComments: false,
          useStrict: true,
          wrap: true,
          inlineText: true,
          stubModules: ['text'],
          paths: {
             'text': 'libs/text' // relative to baseUrl
          }
       }
    }
}
然后需要将
text.js
模块下载到相应的目录中

但是为什么您的
require.config
不起作用呢

因为
r.js
需要在某个点评估配置。您在问题中没有提到您的
require.config
在哪里,但如果您想对其进行评估,您需要指出
r.js
的位置(请参阅):


你的文件夹结构是什么样的?执行此操作时,您确定“text.js”位于“dist”目录中吗?我也遇到了同样的问题。在我看来,构建工具似乎在寻找text.js,因为单词“text”出现在依赖项['text!template.html']中。我也在使用require文本插件。你在使用哪个require.js lib for grunt,因为有很多?
requirejs: {
    dist: {
        options: {
          baseUrl: 'app/scripts',
          optimize: 'none',
          preserveLicenseComments: false,
          useStrict: true,
          wrap: true,
          inlineText: true,
          stubModules: ['text'],
          mainConfigFile: '../config.js' // here is your require.config

          // Optionally you can use paths to override the configuration
          paths: {
             'text': 'libs/text' // relative to baseUrl
          }
       }
    }
}