# npm
Là công cụ quản lý kho vũ khí (package) của NodeJS :v Giống composer của môn phái PHP vậy.
Và sổ sách của cái kho đó là package.json, nhìn cái đuôi .json thì hiểu nó có cấu truc JSON babe rồi ha :v
# package.json
{
"name": "ProjectName",
"version": "1.0.0",
"description": "Description",
"main": "index.js",
"author": "nguyenkhank",
"license": "ISC",
"scripts": {
// ...
},
"dependencies": {
//...
},
"devDependencies": {
//...
}
}
name
: Không chứa khoảng trắng nhé 😈 Vd:KhankDepZai
hayli-xi-tui-di
main
: Cái này chỉ hữu dụng khi bạn muốn pulish cái project cho mọi người sử dụng... mặc định làindex.js
, nếu mà bạn không thích mặc định thì có thể sửa lại để lúcrequire('KhankDepZai')
thì nó sẽ kiếm file khác. Còn bạn thấy code mình gớm quá, không mong public lên thì có thể xóa lun cái dòngmain
đó đi và thay bằng"private": true
dependencies
&devDependencies
: Ở dướiscripts
: nơi mà bạn có thể định nghĩa alias cho các command
# Scripts
Thay vì trong console bạn phải gõ, một câu lệnh dài loằng ngoằng và đếch thể nào nhớ nổi... thì đây cross-env NODE_ENV=development webpack --progress -d --watch
. Định nghĩa lại trong file package.json
{
//.. code above
"scripts": {
"dev": "cross-env NODE_ENV=development webpack --progress -d --watch"
}
}
thì sau đó chỉ cần chạy npm run dev
, thay vì câu thần chú dài hơn cả VẠN LÝ TRƯỜNG THÀNH kia
# dependencies và devDependencies
Các trang thiết (packages) bị sẽ được ghi vào dependencies hoặc devDependencies tùy vào mục đích sử dụng.
Sự khác nhau cơ bản là devDependencies mục đích sử dụng cho môi trường develop: test tủng, nén file các kiểu,... còn dependencies là thứ ứng dụng cần import vào sử dụng.
Nói cách khác dễ hiểu hơn đó là trên môi trường production ko cần cài đặt các packages trong devDependencies.
# Entry Points
When we require a package, Node.js looks for a node_modules folder that contains our package. By default, Node will search and run the file index.js
.
We can change that behavior by adding a property in our package.json called main. This property is the path to the JavaScript file we want Node.js to load instead of index.js:
# Exports & Imports
Node introduced the exports property to the package.json
in version 12.7.0 and the imports property in version 14.6.0. These new properties enable us to control better how other developers import from our package and how we can require files and modules inside our project.
# Commands
# Install
npm install
npm i # short form
npm install --production # only intall dependencies
## ADD PACKAGES
npm install express --save # add more package to dependencies
npm i express -S # short form
npm i express@3.0.0 # specific version
npm install mocha --save-dev # add more package to devDependencies
npm i mocha -D # short form
npm install expo-cli --global
npm i expo-cli -g # short form
# Upgrade Package
npm install package@next
npm install webpack@next --dev
# npm vs npx
Feature | npm | npx |
---|---|---|
Purpose | managing packages in Node.js projects | executing packages without installing them globally |
Scope | operates on a project level | can execute packages globally or locally |
Common Npx Use Cases:
- Trying out packages: Use npx to quickly test a package without installing it globally.
- Running scripts: If a package provides a script, you can run it with npx.
- Creating temporary projects: Use
npx
to create a new project directory and install necessary packages for a one-time task.
← JS Clean Code n →