gruntjs - 使用 grunt-wiredep 进行 Grunt + Bower 的绝对路径

标签 gruntjs bower bower-install grunt-wiredep wiredep

grunt-wiedep 任务输出 Assets 的相对路径。相反,我需要绝对路径。 因此,我按照此处的建议重新配置了 replace block :https://github.com/stephenplusplus/grunt-wiredep/issues/46

但是,在按照建议指定 replace block 后,我将以下内容添加为我的脚本引用。如您所见,这是错误的。

<script src="/../../../public/vendors/jquery/dist/jquery.js"></script>
<script src="/../../../public/vendors/angular/angular.js"></script>
<script src="/../../../public/vendors/angular-resource/angular-resource.js"></script>
<script src="/../../../public/vendors/angular-route/angular-route.js"></script>

我想要的是这个:

<script src="/vendors/jquery/dist/jquery.js"></script>
<script src="/vendors/angular/angular.js"></script>
<script src="/vendors/angular-resource/angular-resource.js"></script>
<script src="/vendors/angular-route/angular-route.js"></script>

所以,我为我的替换 block 尝试了这个。注意RegEx:

replace: {
    js: '<script src="/{{filePath}}"></script>'.replace(/\.\.\/public/gi, ''),
    css: '<link rel="stylesheet" href="/{{filePath}}" />'.replace(/\.\.\/public/gi, '')
}

但似乎 {{filePath}} 稍后会被替换,因此 RegEx 不会产生预期的结果。

处理这种情况的理想方法是什么?

最佳答案

在wiredep的gruntfile.js配置中添加以下内容: ignorePath: '/../../../public'

这将从wiredep创建的路径的开头删除该部分。

例如类似这样的内容,加上对您的配置的任何调整:

wiredep: {
    target: {
        src: [
            '/Views/**/*.html',
        ],          
        ignorePath: '/../../../public',
        dependencies: true,
        devDependencies: false, 
    }
},

关于gruntjs - 使用 grunt-wiredep 进行 Grunt + Bower 的绝对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24109777/

相关文章:

ubuntu - Bower 找不到 Git 安装

javascript - Grunt-Browserify 扩展标志不起作用

javascript - watch 和 sass 的不同 grunt 任务

git:创建标签并推送到远程:为什么标签在远程主机后面?

javascript - 使用理想的图像 slider ,但仅将图像保留在屏幕上

bower 失败, 'ENOTFOUND getaddrinfo ENOTFOUND vox.spacefiles'

node.js - Microsoft Azure 持续集成 - 使用 Grunt "Compile"步骤的 NodeJs 解决方案

javascript - Grunt,将 html 文件复制到构建时的脚本文件夹

node.js - npm Bower 安装失败(卡在同一位置)

javascript - 如何使用 Visual Studio 配置 Bower?