6

私のウェブサイトには次の単純な構造があります。

src
  js
    core.js
    main.js
  lib
    jquery-1.8.2.js
    require-2.1.1.js
    require-text.js
  templates
    1.html
    2.html
  index.html
build

すべての js+lib ファイルを 1 つの build/js/main.js ファイルにコンパイルし、他のファイルをビルド フォルダーにコピーするだけにしたいと考えています。このタスクの grunt.js 構成を記述する方法は? grunt-contrib-require を使用する必要があるようです..

2 番目の質問は、1.html と 2.html (require text! プラグインを使用) をそれぞれ 1 行にコンパイルし、これらの行を build/js/main.js に含める方法です。この場合、ビルド フォルダーには、index.html と main.js の 2 つのファイルのみが存在するはずです。

4

4 に答える 4

5

ディレクトリGruntfile.jsのルートに存在する必要があります。ls should show src/ build/ Gruntfile.js

`Gruntfile.js要件に固有の内容:

module.exports = function (grunt) {
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        concat: {

            js: {
                src: [
                    'src/js/*', 'src/lib/*'
                ],
                dest: 'build/js/combined.js'
            }
        },
        uglify: {
            js: {
                files: {
                    'build/js/main.js': ['build/js/combined.js']
                }
            }
        },
    });
    grunt.loadNpmTasks('grunt-contrib-concat');
    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.registerTask('default', ['concat:js', 'uglify:js']);
};

ここでは使わないと思いrequire-jsます。特定の順序でRequire-jsロードする必要がある場合に役立ちます。js scriptsその場合は、Gruntfile.jsすぐ下pkg: grunt.file.readJSON('package.json'),の行に以下のコードを追加してください

requirejs: {
  compile: {
    options: {
      baseUrl: "path/to/base",
      mainConfigFile: "path/to/config.js",
      name: "path/to/almond", // assumes a production build using almond
      out: "path/to/optimized.js"
    }
  }
}
于 2014-03-03T20:02:01.877 に答える
0

luschn がまとめたリストにgrunt-requireを追加することを検討してください。r.js を使用し、多くのオプションがあり、非常に優れています。

于 2014-01-09T21:24:47.623 に答える