6

我正在使用 Grunt 构建Durandal 入门套件 pro包。

一切都很好,除了一个小细节。我想app-config从优化器中排除一个文件(如下),并在我的构建完成后将其保留为非缩小文件。

根据其他 SO 线程建议,我目前正在使用 排除它empty:,这会按预期将其从优化文件中删除。但是,当我打开构建的项目时,控制台中出现错误:

Uncaught Error: main missing app-config

options: {
    name: '../lib/require/almond-custom',
    baseUrl: requireConfig.baseUrl,
    mainPath: 'app/main',
    paths: mixIn({ }, requireConfig.paths, { 
         'almond': 'lib/require/almond-custom', 
         'app-config': 'empty:' 
    }),
    optimize: 'none',
    out: 'build/app/main.js',
    preserveLicenseComments: false
}

杏仁有问题吗?我尝试使用 将其切换到完整的 requirejs include: ['path/to/require'],但没有成功。

如果您想在本地复制它,您可以从上面的链接下载入门工具包,或者使用与我的示例更接近的稍微配置的版本。只需npm install在文件夹中运行一个就可以了。

4

3 回答 3

3

我已经下载了您的源代码并执行以下步骤。

  1. 解压缩 zip 文件,打开cmd并将目录更改为该文件夹。
  2. 运行npm install以安装所有依赖项。
  3. 运行grunt开始构建项目。

当我打开http://localhost:8999/1并看到alert(appConfig.foo);你的main.js. 单击Ok以隐藏警报后,网页可以正常工作。你还有什么意见吗?

第一步

第二步

所以我不确定你是如何面对这个问题的。

于 2016-10-10T05:49:48.087 回答
0

durandal这个特定链接 grunt-durandal中发现的问题的参考

主模块控制实现的durandal services 链接可以在main.js

在这里您可以看到 system.debug(true)。您可以按照 post here document中的说明将其删除。

文章中引用的函数Overrides request execution timeout making it effectively infinite

此外,在 grunt 中使用 uglify 时,根据文档将调试设置为 false。

根据文档,您需要设置 system.debug(false)

希望这可能会有所帮助。

于 2016-10-14T23:21:15.513 回答
0

尝试:

....
paths: mixIn({ }, requireConfig.paths, { 
     'almond': ['lib/require/almond-custom', '!lib/require/almond-custom/app-config.js']
}),
....

只需注意第二条路径app-config.js是正确的。我认为您应该找到自己的方式,以上是一个提示,如果不是直接的解决方案。

于 2016-10-15T09:01:44.330 回答