Spl*_*tar 39
更改以下内容
import { version } from '../../package.json';
像
import packageInfo from '../../package.json';
然后从类似的东西更改您的访问权限
version,
或者
version: version,
到
version: packageInfo.version,
这并不能解决问题,您现在将收到此警告。`不应从默认导出模块导入命名导出“版本”(导入为“packageJson”)(仅默认导出很快可用)` (7认同)
同意@JeyDWork,这个解决方案应该被标记为潜在的安全风险。如果您的 `package.json` 现在不包含机密数据,谁会保证其他开发人员不会在几年后将它放在那里,而不知道它已暴露于生产环境?即使没有任何秘密,通常情况下,企业也不希望将 `package.json` 中有关其 `dependencies` 和 `devDependencies` 的信息暴露给所有人——这使得发现漏洞和渗透应用程序变得更加容易。 (6认同)
将导入语句更新为 `import packageInfo from '../../package.json';` @Breakpoint25 (6认同)
但这不会带来安全风险并将整个 package.json 暴露给客户端吗? (5认同)
@Splaktar 即使在 `package.json` 中没有秘密,我也觉得这**非常不安全**。大多数开发人员和维护人员,即使有经验,也不会将 `package.json` 视为公共领域的东西。并且在代码库中“隐藏”这样的实现真的很痛苦的镜头就在前方。特别是因为这个错误现在出现在客户端技术 Angular 12 上。因此,**清晰可见的 HEADS-UP** 将适合恕我直言。 (5认同)
从 '../../package.json' 导入 * 作为 packageInfo;版本:packageInfo.version, (2认同)
Had*_*umi 20
我用以下方法解决了我的问题:
import packageInfo from './package.json';
version = packageInfo.version;
这与“resolveJsonModule”一起:true,“allowSyntheticDefaultImports”:true` (2认同)
小智 17
您还应该添加
"allowSyntheticDefaultImports": true,
到 tsconfig.json 中的 pileroptions
Yuv*_*til 8
使用最新版本的create react app
,以下语法有效:
import rData from './registration-form.json';
小智 5
怎么样
const appVersion = require('./package.json').version;
?
使用它,我们实际上并没有发布整个 package.json,而只是从中引入了版本。
我在 Angular 项目的单元测试代码中导入了 JSON 文件。将 Angular 版本升级到 v12 后,我开始收到此错误。在我的测试代码中,我已经按照接受的答案中的描述以正确的方式导入,但是我收到了这个错误。更改为 `require` 为我解决了。谢谢。 (2认同)更多推荐
版本,不应,错误
发布评论