1

更新: この問題はこの PRで修正されました


問題が発生し、通常の純粋な JavaScript の方法では解決できない理由は、server.tsがTypeScriptWebpackを使用している可能性があることに注意してください。ガントの答えを確認してください。そして、この問題を github で追跡してください。

angular/universal-starterをスターターとして使用しています。ファイルconfig.jsonがあります

{
  "api": "123"
}

server.tsを読み込むconfigと:

import * as config from '../config.json';
// const config = require('../config.json');  will be same result
console.log(config);

ターミナルでこれを示します:

{
  "api": "123"
}

ただし、 server.ts を読み込もうとconfig.apiする:

import * as config from '../config.json';
// const config = require('../config.json');  will be same result
console.log(config.api);

を示していますundefined

これは私のフォルダー構造です (他の部分はangular/universal-starterと同じです)。

my-app
  - config.json
  + src
    - server.ts

アプリを起動するときは、 を使用しますnpm start

何が原因でしょうか? ありがとう

4

3 に答える 3

3

構成ファイルは webpack によってインライン化されるため、ES6 モジュール仕様に従い、JSON を Node.js から期待されるオブジェクトではなく文字列として返します。

そもそもwebpackでサーバーを構築する理由はありますか?

于 2016-08-17T15:32:16.240 に答える
1

更新: この問題はこの PRで修正されました


問題が発生し、通常の純粋な JavaScript の方法では解決できない理由は、server.tsがTypeScriptWebpackを使用している可能性があることに注意してください。ガントの答えを確認してください。そして、この問題を github で追跡してください。

私は問題を見つけました:

import * as config from '../config.json';
// const config = require('../config.json'); also works


const json = JSON.parse(config);  // <- need this line
console.log(json.api);  // 123
于 2016-08-17T15:10:43.210 に答える