Как использовать мой модуль в качестве внешней библиотеки в моем проекте с веб-пакетом? - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь использовать мой модуль в качестве внешней библиотеки в моем проекте.Вот код моей библиотеки:

// src/index.js
export default {
    test: 'Hello there'
}

вот package.json моей библиотеки:

  "main": "dist/index.js",
  "module": "src/index.js",

и вот как я импортирую ее в свой проект:

import { test } from 'my-library'
import external from 'my-library'

console.log(test) // logs undefined
console.log(external.test) // logs 'Hello there'

Почему деструктуризация не работает?Вот конфиг моего проекта:

module: {
        rules: [
            {
                test: /\.js$/,
                // exclude: /node_modules/,
                loader: 'babel-loader',
                options: {
                    presets: ['@babel/react'],
                    plugins: ['transform-class-properties']
                }
            },
        ]
}

1 Ответ

0 голосов
/ 08 октября 2018

Этот синтаксис import { symbol } from 'library' используется для импорта экспорт не по умолчанию , в то время как этот синтаксис import someNamespace from 'my-library' используется для импорта экспорта по умолчанию, и поскольку ваш модуль имеет только экспорт по умолчанию, вы должны использоватьвторой синтаксис для правильного захвата, поэтому ваш первый импорт возвращает undefined

Если вы измените содержимое вашего модуля на следующее

export const test = 'Hello there'

Тогда первый импорт сделаетconsole.log() print Hello there, тогда как при втором импорте выдает ошибку , поскольку в вашем модуле отсутствует экспорт по умолчанию

...