相关疑难解决方法(0)

升级到Angular4后找不到名称'require'

我想在我的Angular项目中使用Chart.js.在以前的Angular2版本中,我使用'chart.loader.ts'做得很好,它有:

export const { Chart } = require('chart.js');
Run Code Online (Sandbox Code Playgroud)

然后在组件代码中我就是

import { Chart } from './chart.loader';
Run Code Online (Sandbox Code Playgroud)

但升级到cli 1.0.0和Angular 4之后,我收到错误:"找不到名称'require'".

要重现错误:

ng new newapp
cd newapp
npm install chart.js --save
echo "export const { Chart } = require('chart.js');" >> src/app/chart.loader.ts
ng serve
Run Code Online (Sandbox Code Playgroud)

在我的'tsconfig.json'中,我有

"typeRoots": [
  "node_modules/@types"
],
Run Code Online (Sandbox Code Playgroud)

在'node_modules/@types/node/index.d.ts'中有:

declare var require: NodeRequire;
Run Code Online (Sandbox Code Playgroud)

所以我很困惑.

顺便说一句,我经常遇到警告:

[tslint] The selector of the component "OverviewComponent" should have prefix "app"(component-selector)
Run Code Online (Sandbox Code Playgroud)

虽然我在'.angular-cli.json'中设置了"前缀":"".可能是因为从'angular-cli.json'改为'.angular-cli.json'的原因?

angular-cli angular

113
推荐指数
5
解决办法
9万
查看次数

如何在AngularCLI中的构建时插入构建号或时间戳

我希望在我的Angular2应用程序上的某个地方有一个时间戳或内部版本号,这样我就可以判断用户是否使用旧的缓存版本.

如何在AOT编译/构建时使用Angular2中的AngularCLI执行此操作?

angular-cli angular

37
推荐指数
7
解决办法
3万
查看次数

如何安全地从 package.json 导入版本,同时考虑错误:不应导入命名的导出“版本”?

更新到 Webpack 5 后,我收到此错误:

不应从默认导出模块导入命名导出“版本”(作为“版本”导入)(很快将仅提供默认导出)

超级简单的代码示例:

import { version } from '../package.json';

export const appVersion = version;
Run Code Online (Sandbox Code Playgroud)

这个问题给出了 的解决方案import * as packageInfo from '../../package.json'; version: packageInfo.version,,但这导入了所有 的解决方案package.json,正如答案注释上的一些评论一样,这可能被视为安全风险。

我所需要的只是版本号;如果我必须导入整个内容package.json并可能将其公开给我的用户,那么最好引入代码重复并仅创建和维护两个单独的变量:

  1. 中的版本package.json
  2. 我的 js 应用程序中的版本

然而,我猜测有一种安全的导入方式,package.json不会让 Webpack 5 抱怨,但我只是不知道。有这样的办法吗?

webpack webpack-5

11
推荐指数
1
解决办法
9813
查看次数

如何拉取应用程序版本(或导入package.json文件)?谷歌没有帮助:(

在我的 Angular 应用程序中,我想显示 package.json 文件中的版本。

我知道要导入它,我需要允许导入 json,并且对于这个 tsconfig.json 文件需要获得一些额外的行:

{
  "compilerOptions": {      
    "module": "commonjs",
    "resolveJsonModule": true,
    "esModuleInterop": true,
    "moduleResolution": "node"
  }
}
Run Code Online (Sandbox Code Playgroud)

我这样做了,但之后当我在组件类中导入 json 文件时:

import { myPackage } from '../../../package.json';
Run Code Online (Sandbox Code Playgroud)

我仍然收到错误:

找不到模块“../../../package.json”。考虑使用“--resolveJsonModule”导入带有“.json”扩展名的模块.ts(2732)

问题不在于路径,因为我将另一个简单的 json 文件放入同一文件夹,但出现相同的错误。

我在谷歌上搜索并看到了很多关于“--resolveJsonModule”的例子,但似乎我做了所有需要的事情......但它仍然不起作用。

我还重新启动了 VScode 和 Angular 服务 - 它没有帮助。

我使用 Angular 10.0.11 和 TS 3.9.7

请指教!谢谢!

json typescript angular

6
推荐指数
2
解决办法
8264
查看次数

如何从角度库中的package.json获取版本

我无法包含package.json角度库中的版本,但它可以在项目中使用。我这样使用导入:

import { version } from '../../package.json';
Run Code Online (Sandbox Code Playgroud)

并得到以下错误:

ERROR: error TS6059: File '/Users/.../library/package.json' is not under 'rootDir' '/Users/.../library/src'. 'rootDir' is expected to contain all source files.

An unhandled exception occurred: error TS6059: File '/Users/.../library/package.json' is not under 'rootDir' '/Users/.../library/src'. 'rootDir' is expected to contain all source files.

See "/private/var/folders/tw/z8v0wkt50g5876740n99hzy00000gp/T/ng-0JDpjC/angular-errors.log" for further details.
Run Code Online (Sandbox Code Playgroud)

该途径包括产生安全风险的require整体。仅包含版本号,但适用于角度应用程序而不是库。package.jsonimport { version } from '../../package.json'

typescript angular

1
推荐指数
1
解决办法
9813
查看次数

标签 统计

angular ×4

angular-cli ×2

typescript ×2

json ×1

webpack ×1

webpack-5 ×1