2017-02-23 13 views
3

Изучение NodeJs здесь. Проблема в том, что когда я пытался найти ответы, я не нахожу то, что ищу. Наверное, потому что это слишком просто или не проблема.nodejs Импорт требует преобразования

Я работаю над nodejs с угловым2. Поэтому, естественно, у меня есть такие вещи, как:

import { stuff } from 'some_module' 

Но я пытаюсь работать с пакетом, который имеет Пример использования:

var stuff = require('some_module') 

Очевидно, что мой код не работает, когда я использую импорт и т.д. иначе я бы не стал размещать здесь. Это потому, что я делаю что-то неправильно? Или мне повезло, что этот конкретный модуль не работает с импортом? Может кто-то пролить свет на то, как писать правильные операторы импорта, когда я вижу пример использования require ('some_stuff'), поэтому я могу использовать другие модули, которые я загружаю из npm?

благодарит заранее.

EDIT: Итак, я попробовал npm install requirejs --save. Затем я написал инструкцию require. Но я получаю 404 на упаковке ...

+0

Вы имеете в виду вы хотите использовать в узле требуется, правильно? –

+0

Я предполагаю, что мое замешательство заключается в том, есть ли эквивалент, требуемый для импорта? Или я должен просто написать «require» в моих компонентах angular2? – user691856

+0

В принципе, обе вещи выполняют ту же работу для вас ... Что вы используете в угловом в новом синтаксисе ES6, а в узле вы используете более старый синтаксис из ES5 ... (ES5 и ES6 - это имя версии для JS). ,Мое мнение заключается в том, что вы должны использовать новый синтаксис (вы можете получить его с новой версией узла i.e. 6.9 или использовать babel в старой версии) –

ответ

2

Вы можете использовать импорт, но вам нужно запустить приложение с помощью babel.

вы должны добавить эту строку в package.json файлу

"scripts": { 
    "start": "NODE_ENV=production node_modules/.bin/babel-node --presets 'es2015' src/server.js", 
    "build": "NODE_ENV=production node_modules/.bin/webpack -p" 
    }, 
    "dependencies": { 
    "babel-cli": "^6.11.4", 
    "babel-core": "^6.13.2", 
    "babel-loader": "^6.2.5", 
    "babel-preset-es2015": "^6.13.2" 
    }, 
    "devDependencies": { 
    "http-server": "^0.9.0", 
    "webpack": "^1.13.2", 
    "webpack-dev-server": "^1.14.1" 
    } 

SRC/server.js файл вашего главного местоположение файла

, а затем запустить файл с помощью следующей команды

npm run start

когда вы используйте import { stuff } from 'module'; , тогда вы можете напрямую использовать материал() в вашей программе.

, но при использовании var stuff = require('module'); , то вам нужно сделать stuff.stuff() в вашей программе.

+0

wow интересно, если это так, мне нужно было бы вернуться и реорганизовать/изменить свой код после его поддержки? – user691856

+0

да если хотите. вы можете взять другой пример из https://github.com/500tech/nodejs-express-es6/ –

0

Интересно, что оригинальный синтаксис

var stuff = require('some_module')

не работает для вас. Если ваше приложение было заархивировано из Angular CLI, оно должно поддерживать оба импорта и требовать от операторов вывода.

, например, я использую MSR в угловом 2 компонента, как это:

var MediaStreamRecorder = require('msr'); 
+0

, кажется, когда я этого требую, мой отладчик lite-server дает мне 404 на пакете, на который я указываю ... I не помните, мне нужно указать какой-либо относительный путь для запроса, если он находится в папке node_modules? Я ошибаюсь? – user691856

Смежные вопросы