관리 메뉴

필사(筆寫)

Npm install 시, --save and --save-dev 차이점을 알아보자. 본문

Service Developments/Node.js,Express

Npm install 시, --save and --save-dev 차이점을 알아보자.

코딩필사 2017. 12. 6. 20:55

npm install eslint --save and --save-dev

The difference between --save and --save-dev may not be immediately noticable if you have tried them both on your own projects. So here are a few examples...

Lets say you were bulding an app that that used the moment package to parse and display dates. Your app is a scheduler so it really needs this package to run, as in: cannot run without it. In this case you would use

npm install moment --save

This would create a new value in your package.json

"dependencies": {
   ...
   "moment": "^2.17.1"
}

When you are developing, it really helps to use tools such as test suites and may need jasmine-core and karma. In this case you would use

npm install jasmine-core --save-dev
npm install karma --save-dev

This would also create a new value in your package.json

"devDependencies": {
    ...
    "jasmine-core": "^2.5.2",
    "karma": "^1.4.1",
}

You do not need the test suite to run the app in its normal state, so it is a --save-dev type dependency, nothing more. You can see how if you do not understand what is really happening, it is a bit hard to imagine.

Taken directly from NPM docs docs#dependencies

Dependencies

Dependencies are specified in a simple object that maps a package name to a version range. The version range is a string which has one or more space-separated descriptors. Dependencies can also be identified with a tarball or git URL.

Please do not put test harnesses or transpilers in your dependencies object. See devDependencies, below.

Even in the docs, it asks you to use --save-dev for modules such as test harnesses.

I hope this helps and is clear.



//

npm install --production 처리를 할때 -dev 가 붙었던 모듈들은 제외되고 설치가 된다.