我正在尝试myArr从hello.js导入index.js。但是我得到一个错误
Error [ERR_REQUIRE_ESM]: Must use import to load ES Module
Run Code Online (Sandbox Code Playgroud)
你好.js
export let myArr = ['hello', 'hi', 'hey'];
Run Code Online (Sandbox Code Playgroud)
索引.js
import { myArr } from './hello.js';
console.log(myArr);
Run Code Online (Sandbox Code Playgroud)
我哪里错了?
我正在使用ArcGIS JSAPI 4.12,并希望使用空间幻觉在地图上绘制军事符号。
当我添加milsymbol.js到脚本时,控制台返回错误Uncaught SyntaxError: Cannot use import statement outside a module,因此我添加type="module"到脚本时,它返回Uncaught ReferenceError: ms is not defined。
这是我的代码:
<link rel="stylesheet" href="https://js.arcgis.com/4.12/esri/css/main.css">
<script src="https://js.arcgis.com/4.12/"></script>
<script type="module" src="milsymbol-2.0.0/src/milsymbol.js"></script>
<script>
require([
"esri/Map",
"esri/views/MapView",
"esri/layers/MapImageLayer",
"esri/layers/FeatureLayer"
], function (Map, MapView, MapImageLayer, FeatureLayer) {
var symbol = new ms.Symbol("SFG-UCI----D", { size: 30 }).asCanvas(3);
var map = new Map({
basemap: "topo-vector"
});
var view = new MapView({
container: "viewDiv",
map: map,
center: [121, 23],
zoom: 7 …Run Code Online (Sandbox Code Playgroud) 我正在尝试与 unsplash api 进行集成,但我得到了,
当我尝试通过 ts-node 运行脚本时,如下所示:
ts-node unsplash.ts
Run Code Online (Sandbox Code Playgroud)
有错误:
C:\Users\USER\AppData\Roaming\npm\node_modules\ts-node\dist\index.js:729
return old(m, filename);
^
Error [ERR_REQUIRE_ESM]: require() of ES Module C:\Users\USER\Desktop\tindin\node_modules\node-fetch\src\index.js from C:\Users\USER\Desktop\tindin\src\api\services\unsplash.ts not supported.
Instead change the require of index.js in C:\Users\USER\Desktop\tindin\src\api\services\unsplash.ts to a dynamic import() which is available in all CommonJS modules.
at Object.require.extensions.<computed> [as .js] (C:\Users\USER\AppData\Roaming\npm\node_modules\ts-node\dist\index.js:729:20)
at Object.<anonymous> (C:\Users\USER\Desktop\tindin\src\api\services\unsplash.ts:23:30)
at Module.m._compile (C:\Users\USER\AppData\Roaming\npm\node_modules\ts-node\dist\index.js:735:29)
at Object.require.extensions.<computed> [as .ts] (C:\Users\USER\AppData\Roaming\npm\node_modules\ts-node\dist\index.js:737:16)
at main (C:\Users\USER\AppData\Roaming\npm\node_modules\ts-node\dist\bin.js:238:16)
at Object.<anonymous> (C:\Users\USER\AppData\Roaming\npm\node_modules\ts-node\dist\bin.js:351:5) {
code: 'ERR_REQUIRE_ESM'
}
Run Code Online (Sandbox Code Playgroud)
我的代码
import { createApi } from 'unsplash-js';
import * …Run Code Online (Sandbox Code Playgroud) 我试图在桌面上运行这个存储库一个 vscode 扩展。
我在本地克隆它并运行 npm install
在 vscode 编辑器上按 f5 并出现错误
Process exited with code 1
(node:1404) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
(Use `node --trace-warnings ...` to show where the warning was created)
internal/process/warning:44
Canceled
Run Code Online (Sandbox Code Playgroud)
为了解决这个警告,我发现了另一个 stackoverflow 问题 - (node:9374) 警告:要加载 ES 模块,请设置 "type": "module"
所以我设置"type":"module"上package.json,然后按F5一次。
并出现另一个错误。
Process exited with code 1
Uncaught TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for /mnt/c/vscode-php-debug/src/phpDebug.ts
Run Code Online (Sandbox Code Playgroud)
并在 …
我尝试通过打字稿初始化数据库库。
我的 ts 是这样的:
import { User, UserRole } from '../entity/User';
import crypto from 'crypto';
import {dbManager, pwhash } from '..';
async function inituser()
{
const user = new User();
user.email = 'sheng.lu@mq.edu.au';
user.own_organization = []
user.salt = crypto.randomBytes(16).toString('hex');
user.password = pwhash("password", user.salt);
user.role = UserRole.admin;
await dbManager.save(user);
const duser = await dbManager.findOne(User);
return duser;
}
const duser = inituser();
console.log("Loaded users: ", duser);
Run Code Online (Sandbox Code Playgroud)
当我尝试通过 ts-node 运行脚本时:
npx ts-node db/initializers/inituser.ts
Run Code Online (Sandbox Code Playgroud)
有错误:
SyntaxError: Cannot use import statement outside a module
at …Run Code Online (Sandbox Code Playgroud) 我ky在 Next.js 项目中尝试使用时遇到了这个错误:
错误 [ERR_REQUIRE_ESM]:必须使用导入来加载 ES 模块:/foo/node_modules/ky/index.js
我认为问题在于 Webpack(或 Babel)正在将所有imports转换为require()s 但它ky是一个纯 ES 模块。
我ky在使用它之前通过动态导入让它工作,但它既不优雅也不高效。
const handleFormSubmit = async (event) => {
const ky = (await import("ky")).default;
const response = await ky
.get('http://localhost/api/foo')
.json();
};
Run Code Online (Sandbox Code Playgroud)
有什么建议?
我一直在对一些代码进行单元测试,但似乎无处可去,我收到了关于未知文件扩展名的错误(之前,我收到了有关如何无法识别某些类型的错误)。
这是我的 package.json:
{
"name": "cgt-core-engine-mv",
"description": "API container for other CGT plugins",
"version": "1.01.03",
"author": "CG-Tespy",
"repository": {
"type": "git",
"url": "https://github.com/CG-Tespy/CGT_CoreEngine_MV"
},
"scripts": {
"build": "tsc & (rollup -c)",
"test": "mocha -r ts-node/register Test/**/*.ts"
},
"dependencies": {},
"devDependencies": {
"@types/chai": "^4.2.12",
"@types/mocha": "^8.0.0",
"@types/sinon": "^9.0.4",
"chai": "^4.2.0",
"mocha": "^8.0.1",
"rollup": "^2.00.1",
"rollup-plugin-node-resolve": "^5.2.0",
"rollup-pluginutils": "^2.8.2",
"sinon": "^9.0.2",
"ts-node": "^8.10.2",
"typescript": "^3.9.6"
},
"type": "module"
}
Run Code Online (Sandbox Code Playgroud)
这是我的 tsconfig.json:
{
"compilerOptions": {
"target": "es5",
"module": "CommonJS",
"esModuleInterop": true,
"sourceMap": false, …Run Code Online (Sandbox Code Playgroud) 我已经使用 Typescript 和 JSX 创建了一个 React 应用程序(创建 .tsx 文件而不是 .ts),我尝试在具有热重载的 Docker 容器中运行它,但收效甚微。
我尝试过将 nodemon 与 ts-node 结合使用,但仍然遇到错误
[ERR_UNKNOWN_FILE_EXTENSION]:未知的文件扩展名“.tsx”
一种建议是从 package.json 文件中删除“type”:“module”,但这会导致错误;
语法错误:无法在模块外部使用 import 语句
有谁知道如何解决让 ts-node 处理 tsx 文件的具体问题,或者更一般地说如何解决在 docker 容器内使用 JSX 热重载 typescript 的问题?
我正在尝试使用 构建一个小node.js + ts项目webpack。
tsconfig.json
{
"compilerOptions": {
"lib": ["ESNext"],
"target": "ES2020",
"module": "NodeNext",
"moduleResolution": "NodeNext",
"esModuleInterop": true,
"types": ["node"],
"allowSyntheticDefaultImports": true,
"rootDir": "./"
},
}
Run Code Online (Sandbox Code Playgroud)
我将其添加到package.json行中"type": "module"
webpack.config.ts
import * as path from 'path';
import * as webpack from 'webpack';
import { fileURLToPath } from 'url';
const __dirname = path.dirname(fileURLToPath(import.meta.url));
const PATHS = {
entry: path.resolve(__dirname, 'src/server/index.ts'),
output: path.resolve(__dirname, 'dist'),
};
const config: webpack.Configuration = {
target: 'node',
entry: PATHS.entry,
output: { …Run Code Online (Sandbox Code Playgroud) 我正在尝试将我的代码编译为 ES 代码(使用"type": "module"内部 package.json 和"module": "esnext"内部 tsconfig.json)。
我无法使用以下 3 种方法中的任何一种来运行它:
ts-node src/server.ts结果是:TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for /Users/ilmoi/Dropbox/crypto_bc/dbricks/mvp/server/src/server.ts
at new NodeError (node:internal/errors:363:5)
at Loader.defaultGetFormat [as _getFormat] (node:internal/modules/esm/get_format:71:15)
at Loader.getFormat (node:internal/modules/esm/loader:105:42)
at Loader.getModuleJob (node:internal/modules/esm/loader:243:31)
at Loader.import (node:internal/modules/esm/loader:177:17)
at Object.loadESM (node:internal/process/esm_loader:68:5)
Run Code Online (Sandbox Code Playgroud)
从这个线程来看,这似乎是 ts-node 的问题。
node --loader ts-node/esm ./src/server.ts得到这个:(node:45543) ExperimentalWarning: --experimental-loader is an experimental feature. This feature could change at any time
(Use `node --trace-warnings ...` to show where the …Run Code Online (Sandbox Code Playgroud) typescript ×7
node.js ×5
javascript ×4
ts-node ×3
es6-modules ×2
webpack ×2
arcgis ×1
babeljs ×1
docker ×1
ecmascript-6 ×1
export ×1
import ×1
jsx ×1
next.js ×1
package.json ×1
tsconfig ×1
tsx ×1
unit-testing ×1