Неправильно требовать пути после того, как машинный файл был передан babel - PullRequest
0 голосов
/ 11 июня 2018

Проблема

Когда я запускаю nodemon с npm run start , я получаю Ошибка: не удается найти модуль 'Test' , иКогда я собираю файлы с npm, запускаю build и запускаю ./dist/index.js, я получаю ту же ошибку.

Как вы можете видеть, требуемый путь в . /dist / index.js не распознается должным образом.

Я не знаю, какую конфигурацию необходимо изменить, поэтому я задал вопрос.

Если вы знаете об этом, пожалуйста, ответьте обратномне с твоим ответом.Спасибо:)

Исходный код

. / Src / index.ts

import Test from 'Test';

const test = new Test();

. / Src / Test / index.ts

export default class Test {
    constructor () {
        console.log('Test');
    }
}

. / Dist / index.js

"use strict";

var _Test = _interopRequireDefault(require("Test"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var test = new _Test.default();

. / Package.json

{
  "version": "1.0.0",
  "description": "",
  "scripts": {
    "build": "babel ./src --extensions .ts,.js --out-dir ./dist",
    "start": "nodemon ./src --exec babel-node --extensions .ts,.js"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@babel/cli": "^7.0.0-beta.47",
    "@babel/core": "^7.0.0-beta.47",
    "@babel/node": "^7.0.0-beta.47",
    "@babel/plugin-proposal-class-properties": "^7.0.0-beta.47",
    "@babel/plugin-proposal-object-rest-spread": "^7.0.0-beta.47",
    "@babel/polyfill": "^7.0.0-beta.47",
    "@babel/preset-env": "^7.0.0-beta.47",
    "@babel/preset-typescript": "^7.0.0-beta.47",
    "cross-env": "^5.1.5",
    "nodemon": "^1.17.4"
  }
}

. / Tsconfig.json

{
    "compilerOptions": {
        "allowJs": true,
        "allowSyntheticDefaultImports": true,
        "baseUrl": ".",
        "experimentalDecorators": true,
        "forceConsistentCasingInFileNames": true,
        "lib": ["ES2015", "ES2017", "DOM"],
        "noEmit": true,
        "noImplicitAny": true,
        "noImplicitReturns": true,
        "noImplicitThis": true,
        "module": "esnext",
        "moduleResolution": "node",
        "paths": { "*":["node_modules/*", "src/*"] },
        "pretty": true,
        "strictNullChecks": true,
        "target": "es5",
        "typeRoots": ["./node_modules/@types"]
    }
}

. /. babelrc

{
    presets: ['@babel/preset-env', '@babel/preset-typescript'],
    plugins: ['@babel/plugin-proposal-class-properties', '@babel/plugin-proposal-object-rest-spread']
}

1 Ответ

0 голосов
/ 11 июня 2018

Попробуйте import Test from './Test'; в вашем ./src/index.ts.Потому что без относительного пути машинопись ищет глобальный модуль Test.Если вы хотите использовать локальный модуль, вы должны использовать относительный путь к вашему модулю.

...