问题标签 [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 函数 ES6 访问主文件中的全局变量
我正在使用Vue.js
但只是JS
文件而不是vue
文件,并且我正在将一个组件导入到我的 main 中app.js
,如下所示:
它可以很好地导入它,但我正在尝试访问这些全局变量。在人们因为使用全局变量而毁掉我之前,你能告诉我这是否可能。
无论我在变量之前还是之后包含它,它都不会读取apiRoot
或包含在该组件中。acfApiRoot
它工作的唯一方法是如果我在我的组件文件中声明变量autoPosts.js
javascript - 以导出名称导入所有命名导出而不明确列出它们
我有一个文件,它按模块名称从我的模块modules.js
中导出所有导出(在索引文件中的 ES6 导出/导入之后):default
在我的app.js
中,我想导入这个模块包。
我希望从 a...z 中导入导出的变量,module.js
以便我可以在app.js
.
显然我不想做
因为这是非常冗长的,每当我添加一个模块时module.js
,我也必须更改import
in app.js
。
我试过了
但变量在app.js
.
问题:我如何简单地将所有命名的导出导入 到它们的导出名称下?
示例模块./modules/a/a.js
:
node.js - 为什么节点使用不需要导入?
我正在学习 node.js 并且想知道为什么它使用require
语法而不是import
React 使用的语法。
IE
const Validator = require("validator");
VS
import Validator from "validator";
我相信import
是 es6,但我认为这不能解释为什么它不在节点中使用。
javascript - 在 javascript 函数中导出 json 以在另一个 javasctipt 函数中导入
我需要读取一个 json 文件并使其在整个应用程序中可用。我的方法是(从这个资源中提取):
资产/js/routes.json:
资产/js/router.js:
资产/js/base/pltbl.js:
它在app.blade.php中调用:
但是当 app.blade.php 被渲染时,在控制台中弹出以下错误:
webpack - 让 webpack 为未知的导入抛出错误而不是警告
当 Webpack 发现它认为不存在的导入时,它会非常方便地显示警告:
这很好,但如果能够接收到实际错误会更好,理想情况下会出现在 webpack 开发服务器overlay
选项中。有没有办法做到这一点
typescript - 为什么在另一个 Typescript 项目中导入时没有得到导出的对象?
我正在尝试创建一个通过 Typescript 编写的 React 组件库,该组件库应导入另一个 Typescript 项目。准确地说,我想将 Analytics 图表库导入故事书中以进行演示和测试。
为此,我将这些依赖项用于库:
- “打字稿”:“^3.1.6”
- “webpack”:“^4.15.1”
- "babel-loader": "^8.0.4"
- “ts-loader”:“^5.3.0”
- "@babel/core": "^7.1.5",
- "@babel/runtime": "^7.1.5",
- "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
- "@babel/plugin-syntax-dynamic-import": "^7.0.0",
- "@babel/preset-env": "^7.1.5",
- 还有很多...
我为故事书提供了这些额外的依赖项:
- “@storybook/react”:“^4.0.4”
- 上面提到的所有其他人
- 还有很多...
此外,我在库的 tsconfig.json 中有以下设置:
- “模块”:“esnext”,
- "moduleResolution": "节点",
- “目标”:“es5”(这是故意的)
- 等等
Webpack 生成一个整洁的 d.ts 文件,其中(除其他外)包含:
最后但同样重要的是,libraryTarget 是 UMD。
现在,当我尝试像这样在故事书中导入库时:
然后做一个
我明白了
在控制台中。这并不完全有用,因为我期望的是我可以使用的对象(如 d.ts 中所定义)。.
所以,我一定是在做和/或误解一些关于出口和进口的根本错误。如果有人能指出正确的方向,我将不胜感激。让我知道是否需要更多详细信息。
非常感谢
沃尔特
编辑: 最小的项目设置
- 在“分析”文件夹中,运行“yarn install && yarn run dist”
- 转到文件夹“storybook”并运行“yarn install && yarn start-storybook”
- 打开浏览器并转到 localhost:6006
- 检查开发控制台
- 留意以“你去!”开头的消息。
- 我希望有一个包含所有分析工厂的对象,而不是一个模块或未定义的......
javascript - 避免从导入中引入代码
我正在练习使我的 webpack 包更小,并使用 webpack 的包分析器,我看到一个非常重的包被包含在两个不同的异步块中,即使它只使用了一次。在对我的代码进行了一些挖掘之后,我意识到这可能是因为以下情况:
文件1.js
文件2.js
文件 3.js
我假设由于 file1 全局导入重包,而 file2 从 file1 导入一个函数,因此它将重包作为依赖项获取,即使它没有导入实际使用该包的函数。我希望(或者更确切地说,希望)只有 file3 的块包含重度依赖项,因为它是唯一使用它的地方。
我应该以特定的方式处理这样的导入吗?也许我可以在 webpack 中做一个神奇的配置来帮助解决这个问题,一种更好的构建模块/函数的方法,或者只是更好的导入函数/模块/包的方法?
我正在使用 webpack 4,我在 ES2017
laravel - 使用 Laravel Mix 将 JavaScript 类导入 Vue 单文件组件
我正在我的项目中编写一个 Vue 单页组件,该组件是使用Laravel Mix捆绑的。我想将一些逻辑提取到它自己的类中,以便可以轻松地在其他组件中重用它(但这不是应该是 Vue 组件本身的逻辑)。
我创建了一个新类并将其放在TimeRangeConverter.js
与我的 Vue 组件相同的目录中。
在我的组件中,我像往常一样导入它:
但是 Vue 抛出一个错误说ReferenceError: TimeRangeConverter is not defined
.
我正在使用webpack.mix.js
Laravel 5.7 附带的默认配置文件:
在我的主app.js
文件中,我会自动包含 Vue 组件:
将此类导入Vue组件以供使用的正确方法是什么?
javascript - JavaScript 导入如何找到没有扩展的模块?
我知道我们可以使用并且将从同一目录中导入import {x} from "./file"
一个变量。如果目录中存在具有不同扩展名的同名文件,如何处理?x
file.js
例如,如果有file.js
和file.ts
在同一个目录中,会如何import {x} from "./file"
表现?它会取决于 JavaScript 的版本吗?
javascript - 从 Font Awesome 导入许多图标
我正在导入许多 FA 图标:
如何声明该列表一次然后重新使用它?它会是一个数组吗?或者一个对象……什么?
我刚在想
但这当然行不通。我会做什么library.add()
?
后面那个看起来像物体的东西是import
什么?