【问题标题】:Excluding .svn folders when optimising with requirejs使用 requirejs 优化时排除 .svn 文件夹
【发布时间】:2013-12-19 13:52:07
【问题描述】:

我正在尝试使用 r.js 优化项目,源代码保存在 subversion 中。我收到以下错误:

> node r.js -o generic-profile.js
> Error: Error: EPERM, operation not permitted 'C:\xxx\GUI\generic\.svn\entries'
                at Object.fs.unlinkSync (fs.js:760:18)

我认为问题在于 r.js 试图将 .svn 目录从源文件夹复制到构建文件夹。

有没有办法在运行 r.js 时排除 .svn 目录?例如,我可以在我的构建配置文件中添加一些东西吗?

这是我的构建配置文件目前的样子:

({
    "appDir": "../src/generic/",
    "baseUrl": ".",
    "dir": "../generic/",
    "include": ["../vendor/require",
                "../vendor/text",
                "../vendor/i18n"],
    "optimize": "uglify2",
    "modules": [
        {
            name: "app"
        }
    ],
    "mainConfigFile": "generic-config.js"
})

更新

自从阅读 Louis 的出色答案后,很明显这不是颠覆的问题,而是配置不当的构建配置文件。我已经进一步阅读了如何设置构建配置文件,this example 帮助很大。

如果您遇到类似问题,这可能会有所帮助。

【问题讨论】:

    标签: javascript svn optimization requirejs r.js


    【解决方案1】:

    默认情况下,r.js 已经从处理中排除了以句点开头的目录。设置为fileExclusionRegExp,默认值为/^\./,因此将跳过.svn。 (查看r.js 的代码,我看到fileExclusionRegExp 与每个文件的基本名称匹配。)

    您看到的错误与您的输入目录与您的输出一致。您没有将keepBuildDir 设置为true,因此您的输出目录将被删除。更改您的 dir 以在其他地方构建。

    或者您将输出置于版本控制之下。将keepBuildDir 设置为true 可以解决眼前的问题,但如果您对r.js 的输出执行转换,则可能会在未来产生更多问题。

    【讨论】:

    • 谢谢,帮助很大。 keepBuildDir 默认情况下不是真的,这似乎有点奇怪,但读到它,我可以明白为什么。
    猜你喜欢
    • 1970-01-01
    • 2013-05-07
    • 2012-01-10
    • 2013-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多