Отработано около 3 часов.
Я просто хотел использовать файлы import
и export
в js.
Все говорят, что это невозможно. Но с мая 2018 года можно использовать выше в plain node.js без каких-либо модулей, таких как babel и т. Д.
Вот простой способ сделать это.
Создать ниже файлов, запустите и посмотрите вывод для себя.
Также не забудьте увидеть Explanation
ниже.
function myFunc() {
console.log("Hello from myFunc")
}
export default myFunc;
import myFunc from "./myfile"
myFunc();
node --experimental-modules index.mjs
(node:12020) ExperimentalWarning: The ESM module loader is experimental.
Hello from myFunc
Объяснение:
Надеюсь, что это помогло.
Этот поток дает то, что я считаю лучшим ответом, Doug Harrison (VC ++ MVP):
[Это предупреждение] испускается, когда вы используете не- dllexported класс X в dllexported классе Y. Что в этом плохого? Предположим, что Y имеет встроенную функцию y_f, которая вызывает функцию x_f, принадлежащую X, которая также не является встроенной. Если y_f встроен внутри некоторого клиента, который не статически связывает X, ссылка не будет выполнена, потому что x_f не будет найден.
blockquote>
Ниже приведен поток с хорошим обсуждением этого вопроса.
Короче говоря, компилятор предупреждает вас, что, по сути, ваш экспортированный класс не отделяет интерфейс от реализация. Если члены, о которых идет речь, не доступны для клиентов, сделайте их закрытыми и #pragma
покиньте предупреждение для этого члена / класса. Если участники доступны и используются клиентами, вам необходимо будет предоставить косвенный доступ к членам через аксессуар и мутаторы.
Я обычно получаю это предупреждение, когда делаю глупую ошибку при построении DLL с библиотекой времени исполнения Single / Multithreaded вместо Single / MultithreadedDLL. Вы можете проверить это в настройках вашего проекта.
Эта страница Microsoft помогла мне в этом.