angularjs - 将 Node 模块文件注入(inject)index.html

标签 angularjs node.js dependency-injection gulp bower

我使用 Bower 和 npm 作为包管理器来处理依赖项。现在 bower 正在显示

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/

所以我使用bower-away集成了yarn。现在所有 Bower 依赖项都已移至我的 package.json 中,如下所示

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

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

enter image description here

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

最佳答案

您仍然可以使用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)))
}

关于angularjs - 将 Node 模块文件注入(inject)index.html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47924644/

相关文章:

javascript - Express Session 属性区分浏览器和 Postman

node.js - Passport + Socket.io 获取登录用户 ID

python - Twisted 如何与命令行程序交互? Node.js 可以吗?

java - 属性上的 Spring @Autowired 和 @Value 不起作用

java - Spring Boot CommandLineRunner 和构造函数注入(inject)

angularjs - QuaggaJS 和 Angular

javascript - AngularJS 路由提供者 - 发布请求

google-maps - ng-click 在谷歌地图的信息窗口内容中

javascript - 从 AngularJS 发布到 WCF 服务内容类型问题

java - 是否可以使用 Java 配置在 Spring Framework 中编写类似 Guice 的模块?