从“./lib/axios.js”导入axios;语法错误:意外的标识符(TypeScript)

unhi4e5o  于 5个月前  发布在  iOS
关注(0)|答案(1)|浏览(64)

我在server.ts中做错了什么?

const express = require('express');
const bodyParser = require('body-parser');
const cors = require('cors');
const morgan = require('morgan');
const axios = require('axios');
console.log(axios);

...

字符串
节点版本

$ node -v
v12.9.1


package.json

{
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "start": "ts-node ./src/server/server.ts"
  },
  "dependencies": {
    "axios": "^1.6.2",
    "body-parser": "^1.20.2",
    "core-js": "^3.8.3",
    "eslint": "^4.6.0",
    "node-fetch": "^2.0.0",
    "nodemon": "^1.11.0",
    "ts-node": "^10.9.1",
    "vue": "^3.2.13",
    "vue-class-component": "^8.0.0-0",
    "vue-router": "^4.0.3",
    "vuex": "^4.0.0"
  },
  "devDependencies": {
    "@types/axios": "^0.14.0",
    "@vue/cli-plugin-babel": "~5.0.0",
    "@vue/cli-plugin-router": "~5.0.0",
    "@vue/cli-plugin-typescript": "~5.0.0",
    "@vue/cli-plugin-vuex": "~5.0.0",
    "@vue/cli-service": "~5.0.0",
    "cors": "^2.8.5",
    "express": "^4.18.2",
    "morgan": "^1.10.0",
    "sass": "^1.32.7",
    "sass-loader": "^12.0.0",
    "typescript": "~4.5.5"
  }
}


但是当我通过npm start启动服务器时,
C:\dev-projects\testing\vue-server\node_modules\axios\index.js:1 import axios from './lib/axios.js';^
语法错误:Module._compile中的意外标识符(internal/modules/cjs/loader.js:872:18)at Module._extensions..js(internal/modules/cjs/loader.js:947:10)在Object.require.extensions. [as .js](C:\dev-projects\testing\vue-server\node_modules\ts-node\src\index.ts:1608:43)at Module.load(internal/modules/cjs/loader.js:790:32)at Function.Module._load(internal/modules/cjs/loader.js:703:12)at Module.require(internal/modules/cjs/loader.js:830:19)(internal/modules/cjs/helpers.js:68:18)。(C:\dev-projects\testing\vue-server\src\server\server.ts:5:15)at Module._compile(internal/modules/cjs/loader.js:936:30)at Module.m._compile(C:\dev-projects\testing\vue-server\node_modules\ts-node\src\index.ts:1618:23)
我有时会重新安装node_modules,尝试imporst axios,安装另一个版本的axios,甚至尝试做它的.js/.mjs文件。
.但它没有帮助..

7xzttuei

7xzttuei1#

axios的默认构建假设你使用的是ESM(JavaScript的原生模块格式),但你使用的是CommonJS(Node.js的旧模块格式)。你至少有两个选择:
1.切换到native modulesimport/export而不是require()),

1.参考axios documentation了解如何使用CommonJS加载axios,其中列出了各种CDN选项,并指出:
预构建CommonJS模块以直接导入require(如果您的模块打包器无法自动解析它们)

const axios = require('axios/dist/browser/axios.cjs'); // browser
const axios = require('axios/dist/node/axios.cjs'); // node

字符串
分别:

$ node -v
v12.9.1


这是一个明显过时的Node.js版本,v12于2022年4月30日到期。当前的LTS是v20.10.0;最新的非LTS是v21.2.0。

相关问题