我真的把这个问题的所有重复问题都想了一遍,没有一个解决方案起作用。这是不同的。
我的项目在本地计算机上运行得很好,但是当我在服务器上运行它时,我得到了这个错误:> ts-node ./src/index.ts
SyntaxError: Cannot use import statement outside a module
.
浏览器中未运行任何内容。
它只是服务器端 ts
/root/ae-system/node_modules/rithmic-api/src/index.ts:1
import os from 'os'
^^^^^^
SyntaxError: Cannot use import statement outside a module
at internalCompileFunction (node:internal/vm:74:18)
at wrapSafe (node:internal/modules/cjs/loader:1141:20)
at Module._compile (node:internal/modules/cjs/loader:1182:27)
at Module._compile (/usr/lib/node_modules/ts-node-dev/node_modules/source-map-support/source-map-support.js:568:25)
at Module.m._compile (/tmp/ts-node-dev-hook-1410233924574671.js:69:33)
at Module._extensions..js (node:internal/modules/cjs/loader:1272:10)
at require.extensions..jsx.require.extensions..js (/tmp/ts-node-dev-hook-1410233924574671.js:114:20)
at require.extensions.<computed> (/tmp/ts-node-dev-hook-1410233924574671.js:71:20)
at Object.nodeDevHook [as .ts] (/usr/lib/node_modules/ts-node-dev/lib/hook.js:63:13)
at Module.load (node:internal/modules/cjs/loader:1081:32)
[ERROR] 13:49:17 SyntaxError: Cannot use import statement outside a module
以上错误发生在本地npm模块。该模块不是从npm注册表安装的,而是一个自定义的typescribe项目。
依赖项已添加到主文件夹:
package.json
...
"dependencies": {
"rithmic-api": "file:rithmic-api",
}
...
我不知道是不是因为这个原因。
我的本地npm和节点版本几乎等于服务器版本:
x1米2英寸x1米3英寸
对于 typescript 配置:
定制NPM模块具有
tsconfig.json
{
"compilerOptions": {
"target": "ESNext",
"module": "CommonJS",
"outDir": ".dist/src",
"moduleResolution": "node",
"listFiles": false,
"alwaysStrict": true,
"noUnusedLocals": false,
"noImplicitReturns": true,
"noImplicitThis": true,
"noImplicitAny": true,
"strictNullChecks": true,
"noFallthroughCasesInSwitch": true,
"forceConsistentCasingInFileNames": true,
"pretty": true,
"sourceMap": false,
"types": ["node"],
"esModuleInterop": true,
// "declaration": true,
// "rootDir": "sys",
// "skipLibCheck": true,
// "noStrictGenericChecks": true,
// "noUnusedParameters": false,
// "experimentalDecorators": true,
// "emitDecoratorMetadata": true,
},
"include": ["./src/**/*.ts"],
"exclude": ["node_modules"],
}
型
主项目文件夹具有
{
"compilerOptions": {
"target": "ESNext",
"module": "CommonJS",
"outDir": ".dist/src",
"moduleResolution": "node",
"listFiles": false,
"alwaysStrict": true,
"noUnusedLocals": false,
"noImplicitReturns": true,
"noImplicitThis": true,
"noImplicitAny": true,
"strictNullChecks": true,
"noFallthroughCasesInSwitch": true,
"forceConsistentCasingInFileNames": true,
"pretty": true,
"sourceMap": false,
"types": ["node"],
"esModuleInterop": true,
// "declaration": true,
// "rootDir": "sys",
// "skipLibCheck": true,
// "noStrictGenericChecks": true,
// "noUnusedParameters": false,
// "experimentalDecorators": true,
// "emitDecoratorMetadata": true,
},
"include": ["src/**/*.ts"],
"exclude": ["node_modules"],
}
运行该项目的主要脚本包括:
"scripts": {
"start": "ts-node ./src/index.ts",
"dev": "tsnd --cache-directory \".cache\" --watch \"./rithmic-api/src, ./strategy\" --respawn --clear --no-warnings ./src/index.ts",
"build": "tsc"
},
2条答案
按热度按时间eoxn13cs1#
这个问题是由我自己或npm中的一些更改引起的,其中本地包没有链接,但已安装
我使用以下说明修复了该问题:
https://www.geeksforgeeks.org/how-to-install-a-local-module-using-npm/
cotxawn72#
这看起来像是一个typescript找不到你的
tsconfig.json
文件的问题。你的配置看起来很好。我想知道的是,为什么你不把所有的东西都构建到dist
文件夹中,而只是把dist
文件夹部署到你的服务器上,这样模块就构建到dist
中了?我认为运行javascript
的node
比运行typescript
的ts-node
更快。经以下讨论后,由OP修复:
i fixed the problem using these instructions. geeksforgeeks.org/how-to-install-a-local-module-using-npm