问题标签 [javascript-import]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - javascript中的通配符导入......它是否在引擎盖下使用`with`工作?
所以我知道可以用require
.
import {x} from 'x'
相当于const {x} = require('x')
。
但是呢import * from 'x'
?我能想象它被翻译成的唯一的东西是with(require('x')){... }
。
然而,with
声明是不受欢迎的,不是吗?(因为您在编译时不知道如何解析引用)
javascript - 如何将 Babel 与安全帽一起使用?
当我在 Hardhat 中运行测试时,我得到了这个问题中提到的错误。
在 Hardhat 文档中,他们建议可以使用@babel/register,它应该可以即时编译 javascript。
当我添加@babel/register
并包含require("@babel/register");
在测试文件中时,该测试文件不再抱怨,但现在 Hardhat 内部的一些东西抱怨。
如何使用 Babel 和 Hardhat 正确编译 ESModuleimport
以用于使用 CommonJS 的 Hardhat 测试require
?
javascript - 如何在 React 中调试 javascript 函数的导入?
我在 javascript 文件 (helpers.js) 中有一些函数,这些函数被导入到反应文件 (caller.jsx) 中。
helpers.js:
来电者.jsx:
当我运行本地 React 服务器 ( npm run start
) 时,一切正常。我可以使用该应用程序并且它可以工作。
当我运行生产构建 ( npm run build
) 并从该构建中提供 javascript 时,它不起作用,并且控制台中出现错误消息:
浏览器中的编译代码在等号 (=) 处显示了 helpers.js 导出处的问题:
我也尝试在 caller.jsx 中导入符号:
在这种情况下,生产版本会抱怨符号未导出。
如果我删除两个,那么它会抱怨一个。
似乎 CommonJS 样式的代码(带有 module.exports)在 ESModule 样式的代码(带有 import)中不起作用。
但是,我还有一些其他文件(称它们为 caller2.jsx 和 helper2.js),它可以供 helper2.js 使用module.export
,而 caller2.jsx 可以使用 import 语句。
我对如何分辨发生了什么感到困惑。
它被出口了,该死的!为什么只有生产编译器说不是?
版本:节点 v16.10.0、npm 7.24.0、react 17.0.2、react-scripts 4.0.3。
编辑:一些构建信息:我们使用npm
. 以下是 package.json 中的脚本:
例如,这里是完整的输出build
:
编辑 2:我们使用的是安全帽,所以我们不能使用 ESModule 导出。例如,请参阅此 github 问题或此 stackoverflow 问题。
javascript - 如何使用标签 API?
我正在创建一个程序,该程序需要与打开 HTML 文件的窗口上的其他选项卡进行交互,我找到了这段代码。但是,我认为我没有正确实施它,因为它什么也没做。这是我的(不完整的)代码:
HTML:
JavaScript:
任何帮助,将不胜感激!:)
就上下文而言,这是针对我的学校的。它本质上需要是一个文本编辑器,然后自动将文本上传到我学校使用的平台。
reactjs - 为什么我不能将 React 导入为“react”?
这里也描述了问题,但响应不是详尽的React can't be found
import React from 'react'
<- 我知道这个说法是正确的
由于“React”是默认导出而不是命名导出,因此该语句不应该也起作用:
import react from 'react'
我知道 React.createElement() 将来会被调用,但为什么 react.createElement() 不正确?毕竟,“React”这个词只是指代“react”模块的名称。
javascript - 导出/导入同名类型和值
我正在尝试在typescript svelte 3 应用程序中使用big.js和toFormat 。正如 GitHub 页面上所解释的,我已经安装了来自definitelyTyped 项目的类型:
但是,toFormat 没有类型定义;所以我写了自己的:
现在我可以像下面那样使用 big.js 和 toFormat (有效):
但是,我不想每次使用时都执行 toFormat,而是希望使用以下更简单的语法:
为此,我创建了 /utilities/decimal.ts 文件:
现在的问题是import Decimal from '../utilities/decimal';
确实导入了 DecimalConstructor,但没有导入 Decimal 接口。我看到import Big from 'big.js';
导入了 Big 接口和 BigConstructor;所以似乎可以将我的 Decimal 接口和 DecimalConstructor 放在同一个Decimal
名称下。有人可以帮我弄这个吗?
更新:顺便说一句,以下工作:
我想要实现的是以与默认导入相同的名称导入 Decimal 和 DecimalConstructor 。
javascript - Eslint:手动控制绝对和相对导入
我想要一个 eslint 规则,它将为从目录内部导入的所有内容设置相对导入路径,为从目录外部导入的所有内容设置绝对路径。
示例:这是我的文件结构
我想在我的主目录中进行相对导入,对从主目录外部导入的所有内容进行绝对导入。
我的 Component2.tsx 的导入应该是这样的