71

アプリケーションの展開中に変化する可能性のあるURLやその他の定数を保存するための構成ファイル(.netのWeb構成のようなもの)を作成する最良の方法は何ですか?

4

3 に答える 3

87

.constant()次の方法を使用します。

angular.module('app').constant('MONGOLAB_CONFIG', {
  baseUrl: '/databases/',
  dbName: 'ascrum'
});

この例のように。

次に、定数が必要な場所に注入するだけです。

開発用または本番用にさまざまな定数を定義するさまざまなファイルを用意し、Grunt などのツールを使用して、環境に応じてこのファイルまたはそのファイルを使用できます。

次のようなフォルダ構造があるとします。

|-js/
|  |-app.js
|  |-anotherfile.js
|  |-...
|
|-env/
|  |-dev.js
|  |-prod.js
|
|-index.html

dev.jsprod.js同じ.constant()サービスを異なる値で定義します。次に、次のような gruntFile と連結する適切なファイルを取得できます。

grunt.registerTask('default', ['concat']);

grunt.initConfig({
  env : process.env.NODE_ENV,
  src: {
    javascript: ['js/*.js'],
    config: ['env/<%= env %>.js']
  },
  concat: {
    javascript: {
      src:['<%= src.config %>', '<%= src.javascript %>'],
      dest:'myapp.js'
    }
  }
});

実行すると、適切な定数を含むファイルgruntが得られます。myapp.js

編集:Gulpを使用すると、次のようにできます:

var paths = [
  'env/' + process.env.NODE_ENV + '.js',
  'js/**/*.js',
];

var stream = gulp.src(paths)
  .pipe(plugins.concat('main.js'))
  .pipe(gulp.dest('/output'));
于 2013-07-26T09:40:39.023 に答える
10

私見、タスクランナーで構成ファイルを処理するのは好きではありません。別の構成が必要になるたびに、1 行または 2 行を変更するだけで、アプリケーション全体を再構築する必要があるからです。

of angularを使用する.configことは良いことであり、次のようなことを行います (最初の回答の例から借用)

angular.module('app').constant('MONGOLAB_CONFIG', {
  baseUrl: '/databases/',
  dbName: 'ascrum'
});

これに名前を付けましょうapp.config.js

そして、これは、このような縮小されたスクリプトの直後に.htmlにリンクされます

<script src="js/app-38e2ba1168.js"></script> //the application's minified script
<script src="/app.config.js"></script>

app.config.jsその後、タスクを再実行せずにファイルを編集できます。そのapp.config.jsため、アプリを何度も再ビルドすることなく、さまざまなマシン/環境にさまざまなファイルを配置できます

于 2016-06-28T09:50:38.170 に答える