Как импортировать расширение вместе с файлами в код Visual Studio? - PullRequest
0 голосов
/ 18 марта 2020

Разработка с использованием nodejs для запуска (- экспериментальные модули)

Текущий импорт кода Visual Studio, как показано ниже

import config from " ./config";

, но требуется как указано ниже

импортировать конфигурацию из "./config.js";

Без . js получение ошибки, как показано ниже

internal/modules/esm/resolve.js:61
  let url = moduleWrapResolve(specifier, parentURL);
            ^

Error: Cannot find module C:\Uday\Projects\practice-server\config imported from C:\Uday\Projects\practice-server\index.js
    at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:61:13)
    at Loader.resolve (internal/modules/esm/loader.js:85:40)
    at Loader.getModuleJob (internal/modules/esm/loader.js:191:28)
    at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:42:40)
    at link (internal/modules/esm/module_job.js:41:36) {
  code: 'ERR_MODULE_NOT_FOUND'
}

Так что мне нужен визуальный анализ кода студии для импорта с расширением ??

//index.js
import express from "express";
import config from "./config.js";



const api_app = express();
const api_port = config.api_port
api_app.listen(api_port, () => {
    console.log(`Practice Server started on ${api_port}`);
});

//package.json
{
  "name": "practice-server",
  "type": "module",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "^4.17.1"
  }
}

//config.js
let config = function () { };

config.api_port = 6000;


export default config;

Ответы [ 2 ]

0 голосов
/ 06 мая 2020

В глобальных настройках (или настройках проекта) добавьте следующую конфигурацию:

  // Preferred path ending for auto imports.
  //  - auto: Use project settings to select a default.
  //  - minimal: Shorten `./component/index.js` to `./component`.
  //  - index: Shorten `./component/index.js` to `./component/index`
  //  - js: Do not shorten path endings; include the `.js` extension.

  "javascript.preferences.importModuleSpecifierEnding": "js",

Обратите внимание, что на данный момент это работает только для автоматический импорт (т.е. через intellisense, когда ссылка на экспорт другого файла, и VSCode импортирует его автоматически). Он не работает с autosuggest при вводе оператора импорта вручную.

0 голосов
/ 18 марта 2020

Я всегда использовал свой конфиг. js вот так. Может быть, это может вам помочь.

const config = require('./config');

// Теперь доступ к значению из конфигурации

const sys_dbconfig = config_data['sys_database'];
const user = configdata['system_admin_name'];

Вот мой конфиг. js

var config = {
"sys_database": {
    "user": 'postgres',
    "host": 'localhost',
    "database": 'postgres',
    "password": 'postgres',
    "port": "5432"
},
"system_admin_name": "system",
"url":"http://xxx.xx.x.xxx:3000/wscalc1?wsdl"
}

module.exports = config;
...