babel не переносит пакет npm - требует / src после имени пакета - PullRequest
0 голосов
/ 04 июля 2018

Я разрабатываю пакет NPM, и при использовании ссылки пряжи для привязки его к тестовому репо при импорте требуется /src, добавленный к имени пакета.

.babelrc

{
  "presets": [
    [
      "env",
      {
        "modules": false
      }
    ]
  ],
  "env": {
    "test": {
      "presets": [
        ["env", {
          "targets": { "node": true }
        }]
      ]
    }
  }
}

Пакет JSON Main: "main": "dist/main.js",

Конфигурация Webpack (с использованием Webpack 4):

module.exports = {
  entry: {
    main: './src/index.js'
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        use: {
          loader: 'babel-loader',
        },
        exclude: /node_modules/
      },
      {
        test: /\.json$/,
        use: {
          loader: 'json-loader'
        },
        exclude: /node_modules/
      }
    ]
  },
}

ЦСИ / index.js

export default () => { ... }

Для ясности, это прекрасно работает в тестовом репо:

import myDefaultFunction from 'package-name/src'

но это не так (и это то, что я хочу работать вместо :

import myDefaultFunction from 'package-name'

1 Ответ

0 голосов
/ 04 июля 2018

Назначьте "main": "src/index.js" в вашем модуле package.json

Основной

Основное поле - это идентификатор модуля, который является основной точкой входа в ваш программа. То есть, если ваш пакет называется foo, а пользователь устанавливает он, а затем требует ("Foo"), то экспорт вашего основного модуля объект будет возвращен.

Это должен быть идентификатор модуля относительно корня вашего пакета папка.

Для большинства модулей имеет смысл иметь основной скрипт и часто не намного.

И если вы хотите перенести свой модуль во время разработки, вы должны включить его в webpack.config опции babel-loader

...