如何在DOJO层中包含/预置版权文件?

时间:2015-02-18 08:03:34

标签: javascript dojo

我正在使用DOJO 1.10,我需要在文件中包含/预先添加一些版权信息,用于图层(连接文件)。

我遵循doc的指示,使用版权文件(.txt文件)的本地和绝对路径。

没有成功。

注意: 此外,文档明确表示默认的Dojo版权声明将是 如果没有提供copyrightFile属性,则使用,但此文本信息都不会包含在我的图层中。

我在这里做错了什么?

var profile = function() {
    return {
        basePath: "../",
        releaseDir: "dist",
        releaseName: "build",
        optimize: "closure",
        action: "release",
        layerOptimize: "closure",
        copyTests: !1,
        stripConsole: "all",
        version: "ntv-0.0.0",
        cssOptimize: "comments",
        mini: !0,
        staticHasFeatures: {
            "dojo-trace-api": !1,
            "dojo-log-api": !1,
            "dojo-publish-privates": !1,
            "dojo-sync-loader": !1,
            "dojo-xhr-factory": !1,
            "dojo-test-sniff": !1
        },
        resourceTags: {
            amd: function(t) {
                return /\.js$/.test(t)
            },
            ignore: function(t) {
                return /\.js.map$/.test(t)
            },
            miniExclude: function(t) {
                return /\.js.map$/.test(t)
            }
        },
        packages: [{
            name: "dojo",
            location: "dojo"
        }, {
            name: "test",
            location: "test"
        }],
        layers: {
            "dojo/dojo": {
                include: ["dojo/dojo"],
                customBase: true,
                boot: false
            },
            "test/c": {
                include: ["test/c/c"],
                customBase: true,
                boot: false,
            copyrightFile: 'C:\copyright.txt'
            },
            "test/b": {
                include: ["test/b/b"],
                customBase: true,
                boot: false,
            copyrightFile: 'C:\copyright.txt'
            },
            "test/a": {
                include: ["test/a/a"],
                customBase: true,
                boot: false,
            copyrightFile: 'C:\copyright.txt'
            }
        }
    }
}();

2 个答案:

答案 0 :(得分:2)

看起来这种行为发生了变化,对于1.7+构建配置文件可能没有详细记录。这是mentioned但很难找到。

使用新的配置文件格式时(例如使用layers哈希而不是数组),该属性名为copyright而不是copyrightFile,并且它似乎默认为空。< / p>

例如,要将默认的Dojo版权信息添加到图层,您需要设置copyright: 'util/build/copyright.txt'(假设util直接位于basePath下)。

答案 1 :(得分:0)

我找到了解决此问题的临时工作,因为我使用的是Google Closure编译器,我可以使用@preserve@license来保留JavaScript中的一些注释。

这是我在源代码中使用的示例。比起更少,我仍然非常有兴趣使用DOJO的copyrightFile

/**
 * @preserve Copyright 2009 SomeThirdParty.
 * Here is the full license text and copyright
 * notice for this file. Note that the notice can span several
 * lines and is only terminated by the closing star and slash:
 */

相关: https://developers.google.com/closure/compiler/docs/js-for-compiler