Модуль NPM, ES6, требует импорта, совместного использования кода, создания библиотеки и т. Д. - PullRequest
0 голосов
/ 05 февраля 2019

Так что я ищу руководство, я думаю, что я запутался со всем этим.Я знаю, что мой ответ где-то в Интернете, и, возможно, я действительно прочитал его, но я просто запутался со всем этим.

Чего я хочу достичь: я кодировал приложения ReactJS и React Nativeпо той же теме, и я должен был скопировать вставленный код из одного в другой, я подумал: достаточно, я не копировал вставленный код в течение многих лет, давайте сделаем lib.Я никуда не попал, поэтому подумал: хватит, давай сделаем глупый тест, чтобы я его понял и взял оттуда.Все еще не получил ничего (я удивительный, да?: D).

В любом случае, вот что я придумал:

testLib/
  app/
    hw.js
  lib/
    hello.js

С этим я сделал hello.js похожим на это:

exports.world = function() {
    return "Hello World 1";
};

ссылка npm в lib, ссылка npm привет в приложении и hw.js:

var hello = require("hello");

console.log(hello.world());

узел hw.js показывает «Hello World 1» Я король мира.Итак, на данный момент я понимаю, как создать библиотеку JavaScript, которую я, вероятно, могу использовать для стандартных веб-сайтов.Может быть?Я предполагаю, что есть еще кое-что, но это идея.

Теперь: импорт XX из YY - это ES6, если я это хорошо понимаю, так что я могу использовать экспериментальный материал и переименовать все в mjs (какое решениеэто правда? :)) или используйте webpack, я знаком с webpack, вот как я обновил lib:

testLib/
  lib/
    dist/
      bundle.js
    src/
      index.js
  webpack.config.js

конфигурация webpack проста:

module.exports = {
    entry: {
        bundle: __dirname + "/src/index.js",
    },
    devtool: "",
    output: {
        path: __dirname + "/dist",
        filename: "[name].js",
    },
    resolve: {
        extensions: [".js"],
    },
    optimization: {
        minimize: false, 
    },
};

index.js имеет базовое значение:

export default {
    world: function() {
        return "Hello World 2";
    },
};

Но теперь я не могу получить требование соответствия, require ('hello') больше не работает,поэтому я должен пойти с require ('hello / dist / bundle') , который в основном является пустым объектом.

Я предположил, что require не играет вместе сes6, я обновил свой app / hw.js до app / hw.mjs (что меня расстраивает) и запустил его с - экспериментальными модулями , но я все еще не могу импортировать мою библиотеку с помощью либо импортировать мир из 'hello'; или импортировать мир из 'hello / dist / bundle'

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

Cheers

PS: Я пытался установить "@ babel / core", "babel-loader" и "babel-preset-env" в lib, все еще не получилось.Я также проверил множество существующих библиотек, но отсутствие стандартов является болезненной реализацией и в итоге добавило еще больше путаницы.

...