Lot*_*re1 0 javascript requirejs requirejs-text requirejs-optimizer
我正在使用以下架构来处理基于multipages multipus的应用程序:https: //github.com/requirejs/example-multipage-shim
存储库解释了如何通过运行r.js(用于此类任务的命令行工具)来优化应用程序.
一切都应该工作正常,但我的项目作为一些模块,具有执行HTTP GET请求从服务器获取数据的依赖项(可以是text或json)
这是因为某些页面使用的某些jsons和模板需要在服务器端进行本地化处理.
这是一个显示我在说什么的基本示例:
define( function( require ){
var appLang = require('json!/pagelang/login'), //(a)
loginTemplate = require('text!/template/login'), //(b)
module = require('app/model/user'), //(c)
....
Run Code Online (Sandbox Code Playgroud)
向我的服务器localhost/pagelang/login发出HTTP get请求,返回一个json
{
"hash": "translated_value",
...
}
Run Code Online (Sandbox Code Playgroud)
这同样适用于template/template_name从服务器返回将其UI翻译成用户语言的html的地方.
通过运行r.js,它会尝试为服务器上的exirect目录目录加载这些位置,这显然不存在.
Tracing dependencies for: app/main/login
Error: Error: Loader plugin did not call the load callback in the build:
json:
json!/pagelang/login: Error: ENOENT, no such file or directory '/pagelang/login'
Module loading did not complete for: app/main/login
Run Code Online (Sandbox Code Playgroud)
所以,我想阻止命令行工具优化文本!和json!模块.可能吗?
我检查了requirejs构建设置,但我找不到解决问题的方法.有帮助吗? https://github.com/jrburke/r.js/blob/master/build/example.build.js
json插件if (( config.isBuild && (config.inlineJSON === false || name.indexOf(CACHE_BUST_QUERY_PARAM +'=') !== -1)) || (url.indexOf('empty:') === 0)) {在优化器运行时使用,因此您有几个选项.
inlineJSON: false,!bust到json require的末尾.require('json!/pagelang/login!bust'), 要么paths: { "/pagelang/login": "empty:" }文本插件使用if (config.isBuild && !config.inlineText) {和if (url.indexOf('empty:') === 0) {
inlineText: false,或paths: { "/template/login": "empty:" }| 归档时间: |
|
| 查看次数: |
896 次 |
| 最近记录: |