【问题标题】:KrakenJS and Adaro or Engine-Munger or Dust... (grunt build and then npm start)KrakenJS 和 Adaro 或 Engine-Munger 或 Dust...(grunt build 然后 npm start)
【发布时间】:2015-02-05 18:31:32
【问题描述】:

所以我试图将我的服务器放在生产环境中。我正在使用 kraken,并且在初始化时使用几乎相同的配置。在开发中一切正常,但后来我做到了(我在 Windows 8.1 64bits 上):

set NODE_ENV=production
grunt build --force
npm start

对于根文件它工作正常,问题在于文件夹。我在命令行中使用它:

127.0.0.1 - - [08/Dec/2014:05:55:41 +0000] "GET /back/login HTTP/1.1" 500 22 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit /537.36 (KHTML,如 Gecko)Chrome/39.0.2171.71 Safari/537.36" 错误:可能 不加载模板 在 Object.onLoad (C:\Users\User\Desktop\MyProject\node_modules\engine-munger\view\js.js:38:22) 在 Object.cache.get (C:\Users\User\Desktop\MyProject\node_modules\engine-munger\lib\cache.js:59:14) 在 spclOnLoad (C:\Users\User\Desktop\MyProject\node_modules\engine-munger\lib\munger.js:75:9) 在 C:\Users\User\Desktop\MyProject\node_modules\adaro\lib\reader\file.js:62:16 在 onChunk (C:\Users\User\Desktop\MyProject\node_modules\adaro\lib\patch\index.js:69:29) 在 Chunk.map (C:\Users\User\Desktop\MyProject\node_modules\dustjs-linkedin\lib\dust.js:587:7) 在 C:\Users\User\Desktop\MyProject\node_modules\adaro\lib\patch\index.js:91:39 在 Object.dust.load [as __cabbage__] (C:\Users\User\Desktop\MyProject\node_modules\dustjs-linkedin\lib\dust.js:137:14) 在 Object.cabbage [作为负载] (C:\Users\User\Desktop\MyProject\node_modules\adaro\lib\patch\index.js:98:21) 在 Object.dust.render (C:\Users\User\Desktop\MyProject\node_modules\dustjs-linkedin\lib\dust.js:92:12)

似乎没有找到合适的路径或类似的东西。 同样在配置我有: http://pastebin.com/QsgG19Uz

我已经在 pastebin 中发布了,因为它很大。任何想法如何使这项工作? NODE_ENV=development可以在生产服务器上出问题吗?

编辑:

这是“grunt build --force”的最终输出:

43 个文件中有 432 个错误警告:任务“jshint:files”失败。使用--force,继续。运行 "clean:tmp" (clean) 任务清理 tmp...OK

运行“copyto:build”(copyto)任务复制了36个文件(0个不变), 创建了 4 个文件夹

完成,但有警告。

问题是,我在 Krakenjs 网站上的购物车示例中尝试了相同的方法,结果基本相同。

另外,它说的是警告,而不是最后的错误......

【问题讨论】:

  • 是的,development 环境在生产服务器上会出问题:它不使用预编译模板,性能可能很差。您可以通过查看 kraken-js 配置目录中的配置来比较配置。
  • 为什么将--force 改为grunt?这让我怀疑没有构建模板并且您忽略了错误。 grunt 的输出是什么?
  • 嗨@Aredridel 我已经添加了执行“grunt build --force”时得到的内容(排除文件)在“.build”创建了一个文件夹,其中包含另一个名为“templates”的文件夹,然后在里面“US/en”与“public/templates”中的内容相同,但 html 不是 js,内部是一行(大行)带有灰尘的 javascript。例如:'(function(){dust.register("terms",body_0);var bloc..."
  • 这看起来不像完整的输出 - 有提到的错误,但不是您粘贴的内容。
  • 而且.build/templates 确实应该包含javascript——那些是编译好的灰尘模板,可以执行了。

标签: javascript node.js kraken.js


【解决方案1】:

哦,这很有趣:我敢打赌嵌入式 CSS 和 Javascript 会引发编译错误。花括号中有很多看起来像灰尘标签的东西。它应该足够聪明地分辨出差异——对于 JS,可能是——但 CSS 非常接近尘土,我敢肯定那里有一些模棱两可的地方。

尝试从布局中外部化您的 JS 和 CSS,看看是否有帮助。

【讨论】:

    猜你喜欢
    • 2017-10-05
    • 1970-01-01
    • 2017-01-18
    • 1970-01-01
    • 2023-04-03
    • 2021-02-01
    • 2015-05-19
    • 1970-01-01
    • 2015-12-22
    相关资源
    最近更新 更多