Javascript 在html文件的一行中引用多个js文件

Javascript 在html文件的一行中引用多个js文件,javascript,Javascript,有没有一种简单的方法来引用HTML文件中的所有js文件,而不是逐个引用 而不是这个- <script type="text/javascript" src="js/controllers/mainCtrl.js"></script> <script type="text/javascript" src="js/controllers/browseCtrl.js"></script> ... ... 我在找这样的东西- <script t

有没有一种简单的方法来引用HTML文件中的所有js文件,而不是逐个引用

而不是这个-

<script type="text/javascript" src="js/controllers/mainCtrl.js"></script>
<script type="text/javascript" src="js/controllers/browseCtrl.js"></script>
...

...
我在找这样的东西-

<script type="text/javascript" src="js/controllers/*.js"></script>


或者是否有一种工具可以将这些文件的内容复制到一个文件中,并引用该文件?这将最大限度地减少HTTP调用。

您可以尝试将javascript文件或插件组合成一个:

<script type="text/javascript" src="js/controllers/plugins.js"></script>

不过,您必须手动执行此操作。 另一个选择是编写一个服务器端脚本来合并和缩小所有javascript文件

有没有一种简单的方法来引用HTML文件中的所有js文件,而不是逐个引用

对于一些价值的“容易”。不过,浏览器中没有内置任何东西可以做到这一点

或者是否有一种工具可以将这些文件的内容复制到一个文件中,并引用该文件

有很多
cat
是最简单的一种

从您常用的构建工具调用它


在开发过程中,您可以在运行时使用类似的工具将它们组合起来,并通过构建工具中的节点调用
r.js
,以便为临时和实时环境进行打包。

我一直使用此工具缩小我的js文件:


你可以上传多个文件,它会为你把它们连接成一个。它还产生比YUI compressor更小的文件大小,而且大多数时候谷歌的JS编译器也是如此。

你可以试一试。Require.js是唯一通过脚本标记加载的JavaScript文件。当您停止开发时,您可以使用Require.js的r.js将所有内容缩小并压缩到一个文件中。

我不确定为什么还没有提到这一点,但我确实认为这个线程有点过时。因为我在解决这个问题的搜索过程中偶然发现了这个问题,所以我想我会在这里写一篇关于这个的文章,让其他的JS新手找到

基本上,正确配置的Gruntfile.js将能够围绕js执行各种任务,包括但不限于:连接文件、缩小文件、代码linting等等

您可以在Ubuntu上安装
grunt
,方法是:

$ sudo apt-get install nodejs
$ sudo npm -g install grunt-cli
$ cd /path/to/my/project
--- Assumming you have a package.json file already in place ---
$ npm install grunt --save-dev
--- Install grunt plugins you wish to use ---
$ npm install grunt-contrib-concat --save-dev
$ npm install grunt-contrib-uglify --save-dev
$ npm install grunt-contrib-jshint --save-dev
$ npm install grunt-contrib-watch --save-dev
在上,关于如何使用GruntJS有一篇非常好的文章,但下面是一个Gruntfile.js示例,它将:

  • Lint当前目录中的所有JS文件(
    app.JS
    ,以及
    ngmodules
    目录中的所有
    .JS
    文件)
  • 将文件连接并保存到
    dist/package name.js
  • 缩小连接的文件并将其保存到
    dist/package name.min.js
  • grunfile.js

    module.exports = function(grunt) {
    
      grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        concat: {
          options: {
            separator: ';'
          },
          dist: {
            src: ['app.js', 'ngmodules/**/*.js'],
            dest: 'dist/<%= pkg.name %>.js'
          }
        },
        uglify: {
          options: {
            banner: '/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n'
          },
          dist: {
            files: {
              'dist/<%= pkg.name %>.min.js': ['<%= concat.dist.dest %>']
            }
          }
        },
        jshint: {
          files: ['Gruntfile.js', 'app.js', 'ngmodules/**/*.js'],
          options: {
            // options here to override JSHint defaults
            globals: {
              jQuery: true,
              console: true,
              module: true,
              document: true
            }
          }
        },
        watch: {
          files: ['<%= jshint.files %>'],
          tasks: ['jshint']
        }
      });
    
      grunt.loadNpmTasks('grunt-contrib-uglify');
      grunt.loadNpmTasks('grunt-contrib-jshint');
      grunt.loadNpmTasks('grunt-contrib-watch');
      grunt.loadNpmTasks('grunt-contrib-concat');
    
      grunt.registerTask('default', ['jshint', 'concat', 'uglify']);
    
    };
    
    module.exports=函数(grunt){
    grunt.initConfig({
    pkg:grunt.file.readJSON('package.json'),
    康卡特:{
    选项:{
    分隔符:';'
    },
    地区:{
    src:['app.js','ngmodules/***/.js'],
    dest:'dist/.js'
    }
    },
    丑陋的:{
    选项:{
    横幅:'/*!*/\n'
    },
    地区:{
    档案:{
    'dist/.min.js':['']
    }
    }
    },
    jshint:{
    文件:['grunfile.js','app.js','ngmodules/***.js'],
    选项:{
    //用于覆盖JSHint默认值的选项
    全球:{
    jQuery:true,
    安慰:是的,
    模块:正确,
    文件:正确
    }
    }
    },
    观察:{
    文件:[''],
    任务:['jshint']
    }
    });
    grunt.loadNpmTasks(“grunt-contrib-uglify”);
    grunt.loadNpmTasks('grunt-contrib-jshint');
    grunt.loadNpmTasks(“grunt-contrib-watch”);
    grunt.loadNpmTasks(“grunt-contrib-concat”);
    registerTask('default',['jshint','concat','uglify']);
    };
    
    还有Gulp(),可以与各种插件一起使用。下面的示例将*.js文件连接到一个文件(main.js)中,然后重命名生成的文件并最终缩小它:

    var gulp = require('gulp'),
    rename = require('gulp-rename'),
    uglify = require('gulp-uglify'),
    concat = require('gulp-concat');
    
    gulp.task('scripts', function(){
    return gulp.src('./src/js/*.js')
    .pipe(concat('main.js'))
    .pipe(rename({suffix: '.min'}))
    .pipe(uglify())
    .pipe(gulp.dest('./src/js/*.js'));
    

    除非您的服务器支持类似的内容,否则它将无法工作。这不是浏览器问题,应该为您正在使用的服务器技术添加一个标记,以查看是否有解决方案。是否有
    cat
    的链接?我在网上找不到它。我刚刚开始学习require.js,听说过r.js。我要试一试。谢谢谢谢你的链接。我已经把它放进书签了。我正在寻找一种能自动做到这一点的东西。