Так что я ищу руководство, я думаю, что я запутался со всем этим.Я знаю, что мой ответ где-то в Интернете, и, возможно, я действительно прочитал его, но я просто запутался со всем этим.
Чего я хочу достичь: я кодировал приложения 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, все еще не получилось.Я также проверил множество существующих библиотек, но отсутствие стандартов является болезненной реализацией и в итоге добавило еще больше путаницы.