将节点模块文件注入index.html

时间:2017-12-21 12:07:06

标签: angularjs node.js dependency-injection gulp bower

我正在使用凉亭和npm作为包管理器来处理依赖项。现在凉亭正在展示

npm WARN deprecated bower@1.8.2: ...psst! 
Your project can stop working at any moment because its dependencies can change. Prevent this by migrating to Yarn: 
https://bower.io/blog/2017/how-to-migrate-away-from-bower/

所以我使用yarn整合了bower-away。现在所有的bower依赖项都被移动到我的package.json中,如下所示

"@bower_components/angular": "angular/bower-angular#~1.6.4",
"@bower_components/jquery": "jquery/jquery-dist#>= 1.9.1"

我使用wiredep将所有依赖库注入index.html。它将自动处理bower依赖项。 现在我完全删除了bower,所以这不会起作用。 是否有任何其他方法可以将依赖项移动到index.html中。目前我使用gulp inject方法注入所有文件,如下面的.pipe(inject(gulp.src(["./src/*.js", "./src/*.css"], {read: false})),但它并没有处理所有包。因为路径是完全不同的。 对于Ex:jquery和angular文件夹,如下所示

enter image description here

任何人都可以建议是否有其他方法来实现这一目标。

1 个答案:

答案 0 :(得分:1)

您仍然可以使用gulp inject修复它:

gulp.task('injectfiles', function () {

    var appJS= ["./src/*.js"];// pattern to match your files

    var  libJS= [           
                '(path where jquery exist)/jquery.js',
                '(path where angular exist)/angular.js'
                ];

          var  jsOrder= [
                '**/jquery.js',
                '**/angular.js',
                '(rest lib js)'
                '**/app.module.js',
                '**/*.module.js',
                '**/*.constants.js',
                '**/*.value.js',
                '**/*.config.js',
                '**/*.route.js',
                '**/*.filter.js',
                '**/*.service.js',
                '**/*.controller.js',
                '**/*.directive.js',
                '**/*.js'
            ];

         var src = [].concat(libJS,appJS)


        return gulp
        .src('index path')
        .pipe(inject(src, '', jsOrder))
        .pipe(gulp.dest('dest path'))
})



function inject(src, label, order) {
    //  var options = { read: false };
    var options = {}
    if (label) {
        options.name = 'inject:' + label
    }

    return $.inject(orderSrc(src, order), options)
}


function orderSrc(src, order) {
    // order = order || ['**/*'];
    return gulp
        .src(src)
        .pipe($.if(order, $.order(order)))
}