Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 在ng Packager构建中包含json文件_Angular_Typescript_Ng Packagr - Fatal编程技术网

Angular 在ng Packager构建中包含json文件

Angular 在ng Packager构建中包含json文件,angular,typescript,ng-packagr,Angular,Typescript,Ng Packagr,我想将json文件导入Angular 5应用程序,然后构建一个库。我可以通过包含此代码来完成第一部分 declare module "*.json" { const value: any; export default value; } 到typings.d.ts,但当我尝试构建它时,它失败并出现错误 Cannot find module '../../assets/locale-en.json'. 有什么办法可以修复吗?最后,我编写了脚本,将json文件转换为ts文件,并将

我想将json文件导入Angular 5应用程序,然后构建一个库。我可以通过包含此代码来完成第一部分

declare module "*.json" {
    const value: any;
    export default value;
}
typings.d.ts
,但当我尝试构建它时,它失败并出现错误

Cannot find module '../../assets/locale-en.json'.

有什么办法可以修复吗?

最后,我编写了脚本,将
json
文件转换为
ts
文件,并将其添加到用于packagr build In
package.json
的脚本命令中

package.json

dccript文件

#/usr/bin/env节点
var fs=需要('fs');
var Mustache=require('Mustache');
变量区域设置=[
"嗯",,
];
/**
*使用共享区域设置JSON更新组件库的区域设置JSON
*父项目的。
* 
*注意:这是一个解决方案,用于解决无法
*在组件库的
*`locale-.ts`文件。这似乎是“ng packagr”和
*可以在将来的版本中解决,或者由比我更聪明的人解决;)
* 
*@param{string}locale-两个字符的区域设置字符串(例如“en”)。
*/
var updateComponentLibLocaleJSON=函数(区域设置){
locale=locale.toLowerCase().trim();
//此区域设置的组件区域设置定义文件的位置(“ng packagr”需要此文件)。
var componentLibLocaleJSONPath='./src/components/locale-'+locale+'.ts';
//通用区域设置定义文件Mustache模板的位置。
var componentLocaleJSONTemplatePath='./src/components/locale.ts.mustache';
//此区域设置的共享区域设置JSON文件的位置。
var sharedLocaleJSONPath='./src/assets/locale-'+locale+'.json';
//读取此区域设置的共享JSON,使用
//获取JSON,并将输出保存到组件库的locale JSON文件中,以便
//这个地区。
var sharedLocaleJSON=fs.readFileSync(sharedLocaleJSONPath).toString();
var componentLocaleJSONTemplate=fs.readFileSync(componentLocaleJSONTemplatePath).toString();
var updatedComponentLocaleJSON=
render(组件localejsontemplate,{localeJSON:sharedLocaleJSON});
writeFileSync(componentLibLocaleJSONPath,updatedComponentLocaleJSON);
};
for(var i=0;i
尝试更换

import * as locale from '../../assets/locale-en.json';

在tsconfig.lib.json中

{
  "compilerOptions": {
    ...
   "declaration": false,
    ...
}

你能在这里添加你的脚本吗?会是helpful@GauravMukherjee当然可以,给你
import * as locale from '../../assets/locale-en.json';
const locale = require('../../assets/locale-en.json');
{
  "compilerOptions": {
    ...
   "declaration": false,
    ...
}