如何在Angular 6上使用动态路径导入文件?

如何在Angular 6上使用动态路径导入文件?,angular,typescript,webpack,import,angular6,Angular,Typescript,Webpack,Import,Angular6,我需要从path导入文件,这是从变量的值中获取的。看起来是这样的: let test = require(configurationUrl); let test = require("../../assets/app.conf.json"); 其中configurationUrl是类似于'../../assets/app.conf.json'的路径。 因此,当我运行应用程序时,会出现以下错误: core.js:1601错误:找不到模块“../../assets/app.conf.json”

我需要从path导入文件,这是从变量的值中获取的。看起来是这样的:

let test = require(configurationUrl);
let test = require("../../assets/app.conf.json");
其中
configurationUrl
是类似于
'../../assets/app.conf.json'
的路径。 因此,当我运行应用程序时,会出现以下错误:

core.js:1601错误:找不到模块“../../assets/app.conf.json”

但当我这样写的时候:

let test = require(configurationUrl);
let test = require("../../assets/app.conf.json");
没有错误

我发现了这个问题,但还没有找到解决办法

我也知道我可以这样解决这个问题:

loadConfigurationFromApi(configurationUrl: string) {

    this.http.get(configurationUrl).subscribe(
      res => {
        let test = res;
      })  
 }

但是这种方式不适合我。

您不能直接使用
require()
语法,因为TypeScript默认使用新的es2015语法

因此,您需要使用以下内容:


import*as test from'../../assets/app.conf.json'

您要查找的内容称为“动态导入”。如果你搜索它,你会找到你的答案。不,它可以通过动态路径称为动态导入。谢谢您的回答,但我已经知道如何动态导入smth,这是困扰我如何将路径存储在变量中并使用变量导入文件的问题。“如何将路径存储在变量中”--使用
const path='xxx'
?是的。当常量路径='。/(某些路径)';然后const data=require(路径)@LazarLjubenović此动态导入正在工作,但是当您将字符串(模块路径)设置为变量时,您可以检查,您将看到错误。在这种情况下,@NazarTolmachov不能使用预定义的字符串,因为它来自环境。所以这里的问题不是动态导入,而是使用pat作为变量导入,比如:`const path='some/path';import(path).then()您可以使用require,如果您声明它的话。