Javascript 在html文件的一行中引用多个js文件
有没有一种简单的方法来引用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
<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示例,它将:
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。我要试一试。谢谢谢谢你的链接。我已经把它放进书签了。我正在寻找一种能自动做到这一点的东西。