2017-02-23 2 views
3

NodeJ를 여기에서 학습하십시오. 문제는 내가 답변을 검색하려고 할 때 찾고있는 것을 찾지 못하는 경우입니다. 아마도 이것이 너무 기본 적이거나 논쟁 거리가 아니기 때문일 것입니다.nodejs 가져 오기 변환 필요

나는 angular2로 nodejs 작업을하고 있습니다. 그래서 자연스럽게, 내가 좋아하는 일이 :

import { stuff } from 'some_module' 

를하지만의 사용 예를 가지고 패키지와 함께 작동하도록 노력하고 있어요 : 나는 등 가져 오기를 사용할 때, 내 코드가 작동하지 않았다 분명히

var stuff = require('some_module') 

을 . 그렇지 않으면 나는 여기에 게시하지 않을 것이다. 내가 뭔가 잘못하고 있기 때문에 그런가? 아니면이 특정 모듈이 가져 오기와 함께 작동하지 않을 수 있습니다. 누군가 require ('some_stuff')의 사용 예제를 볼 때 올바른 import 문을 작성하는 방법에 대해 설명 할 수 있습니까? 그래서 npm에서 다운로드 한 다른 모듈을 사용할 수 있습니까?

미리 감사드립니다.

EDIT : 그래서 npm 설치 requirejs --save를 시도했습니다. 그런 다음 위의 require 문을 작성했습니다. 하지만 패키지에 404를 얻고 있습니다 ...

+0

를? –

+0

내 혼란은 가져 오기에 필요한 것과 동일한 것이 있는지 아닌지가 궁금합니다. 아니면 angular2 컴포넌트에 "require"라고 써야하나요? – user691856

+0

기본적으로 두 가지가 모두 똑같은 일을합니다 ... ES6의 새로운 구문과 ES5의 이전 구문을 사용하는 노드에서 각기 다른 각도로 사용하고 있습니다 (ES5와 ES6은 JS의 버전 이름 임). .제 의견으로는 새로운 구문으로 가야한다는 것입니다 (노드의 새 버전 인 6.9를 사용하거나 이전 버전의 babel을 사용할 수 있습니다) –

답변

2

을 가져올 수 있지만 바벨로 앱을 실행해야합니다.

당신은

"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 파일이 기본 파일 위치

입니다 파일 당신의 package.json에이 줄을 추가 한 다음 명령

을 다음과 같이 파일을 실행해야

npm run start

import { stuff } from 'module'; 을 사용하면 stuff()을 프로그램에 직접 사용할 수 있습니다. 당신이 다음 var stuff = require('module'); 를 사용할 때

하지만 당신은 당신의 프로그램에 stuff.stuff()를 할 필요가있다.

+0

와우 흥미로운,이 경우에, 내가 돌아 가야하고 refactor/일단 내 코드가 지원되면 변경해야합니까? 원하는 경우 – user691856

+0

예. 당신은 https://github.com/500tech/nodejs-express-es6/ –

0

그것은 원래 구문

var stuff = require('some_module')

당신을 위해 작동하지 않는 흥미 롭다. 응용 프로그램이 Angular CLI에서 스캐 폴딩 된 경우 가져 오기를 모두 지원하고 즉시 진술을 요구해야합니다. 예를 들어

,이 같은 각도 2 구성 요소에 MSR을 사용하고 있습니다 : 당신은 오른쪽, 노드에서 필요로 사용하고자하는 의미

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

에서 다른 예제를 취할 수 있습니다. 필자가 요구할 때, 내 라이트 서버 디버그는 내가 가리키는 패키지에 404를 제공합니다. node_modules 폴더에 require를위한 상대 경로를 지정하지 않아도 되나요? 내가 잘못? – user691856