Mẹo Và Thủ Thuật để Làm Việc Với NPM - Viblo
Có thể bạn quan tâm
NPM, Node Package Manager, là trình quản lý gói cho ngôn ngữ lập trình JavaScript. Bất kỳ nhà phát triển nào đang làm việc với Javascript đều đã sử dụng công cụ CLI tuyệt vời này để cài đặt các dependencies cho dự án của họ.
Trong bài viết này, tôi sẽ chia sẻ các mẹo và thủ thuật với NPM có thể tăng năng suất của bạn và cho phép bạn sử dụng NPM một cách thông minh và hiệu quả hơn.
1. Initialize your package
Chúng ta có thể chạy lệnh npm init để khởi tạo gói của mình nhưng nó sẽ hỏi thông tin về gói, tác giả, v.v. Có một cách khác để tự động tạo package.json bằng lệnh npm init -y.
npm init -yChúng ta cũng có thể thiết lập một số cấu hình init mặc định như chi tiết về tác giả, v.v. Hãy cấu hình bằng cách sử dụng lệnh npm config.
npm config set init-author-name "Bilaka Jain" npm config set init-author-email "[email protected]"Và hãy chạy lệnh npm init -y để khởi tạo package
{ "name": "<name of the root dir>", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "Bilaka Jain <[email protected]>", "license": "ISC" }Chúng ta cũng có thể mở rộng chức năng của npm init bằng cách thêm tệp javascript tùy chỉnh của riêng mình và cấu hình lại bằng npm config
npm config set init-module <path-of-the-custom-file>2. Install a package from other sources
NPM CLI cũng cho phép cài đặt các gói javascript từ các nguồn khác như Bit, repo GitHub, Bitbucket và gist.
# Install a component from Bit (set Bit as a scoped registry) npm config set @bit:registry https://node.bit.dev npm i @bit/username.collection.component # Install from tarball stored locally npm i ./local-tarball-package.tgz # Install tarball package from internet npm i https://abc/xyz/package.tar.gz # Install from github repo npm i githubuser/reponame # Install from bitbucket repo npm i bitbucket:bitbucketuser/reponame # Install from gist npm i gist:gistIDVí dụ: Cài đặt Button component từ Bit
Tôi đang tìm kiếm một Button component mà một trong những đồng nghiệp của tôi đã xuất bản cho bộ sưu tập thành phần của chúng tôi trên Bit.
Tôi sẽ bắt đầu bằng cách chỉ định cấu hình Bit dưới dạng scoped registry:
npm config set @bit:registry https://node.bit.devSau đó, tôi sẽ đi đến bộ sưu tập của team tôi để tìm button:

Sau đó vào Button component và copy câu lệnh: 
3. Clean install your package dependencies
Chúng ta có thể chạy npm ci để cài đặt các gói phụ thuộc. Nó thường được sử dụng trong các môi trường tự động như nền tảng CI / CD
npm ciNó khác với npm install :
- Nó cài đặt phiên bản chính xác của gói được đề cập trong tệp package-lock.json.
- Loại bỏ node_modules hiện có và chạy cài đặt mới.
- Nó sẽ không viết vào package.json và lock file.
- Nó không cài đặt các gói riêng lẻ tương tự như npm install.
4. Use shortcuts to install packages
Đây là tính năng hữu ích mà chúng ta có thể sử dụng để tiết kiệm thời gian trong khi cài đặt các gói
# Install package npm install <package_name> Shortcut: npm i <package_name> # Install devDependencies npm install --save-dev <package_name> Shortcut: npm i -D <package_name> # Install dependencies (This is default) npm install --save-prod <package_name> Shortcut: npm i -P <package_name> # Install packages globally npm install --global <package_name> Shortcut: npm i -g <package_name>Cài đặt nhiều gói trong một lệnh
npm i express cheerio axiosCài đặt nhiều gói có cùng tiền tố
npm i eslint-{plugin-import,plugin-react,loader} express5. NPM scripts
NPM scripts là tính năng hữu ích nhất. Nó hỗ trợ các tập lệnh tùy chỉnh pre-defined pre/post hooks (thường được gọi là tập lệnh vòng đời) như:
preinstall - chạy trước khi bất kỳ gói nào được cài đặt.
npm run env liệt kê tất cả các biến môi trường npm có trong gói của chúng ta. Nó cũng chứa các thuộc tính gói có tiền tố npm_package_.
npm run envOutput giống vậy
npm_config_save_dev= npm_config_legacy_bundling= npm_config_dry_run= npm_config_viewer=man . . npm_package_license=ISC # Package properties npm_package_author_name=Ankit Jain npm_package_name=npm-tips-and-tricks # Name of our packageChúng ta cũng có thể truy cập các biến env ở trên trong code của mình bằng process.env.npm_package_name và các biến khác tương tự
Tự đặt các biến riêng trong package.json
Chúng ta có thể chuyển các biến của riêng mình dưới dạng các biến môi trường npm với tiền tố npm_package_config_ bằng cách xác định chúng trong tệp package.json, trong đối tượng config. Tạo 1 biến myvariable sẽ như sau:
"config": { "myvariable": "Hello World" },Bây giờ, thì hãy check biến env
npm run env | grep npm_package_config_Kết quả
npm_package_config_myvariable=Hello WorldDefine các custom scripts
Lệnh npm run hiển thị tất cả các tập lệnh mà chúng ta đã xác định trong tệp package.json. Hãy thêm một số tập lệnh tùy chỉnh vào package.json của chúng ta
"scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "node index.js", "echo-hello": "echo \"Hello\"", "echo-helloworld": "echo \"Helloworld\"", "echo-both": "npm run echo-hello && npm run echo-helloworld", "echo-both-in-parallel": "npm run echo-hello & npm run echo-helloworld", "echo-packagename": "echo $npm_package_name", "echo-myvariable": "echo $npm_package_config_myvariable", "echo-passargument": "npm run echo-packagename -- \"hello\"", "echo-pipedata": "cat ./package.json | jq .name > package-name.txt" },Bây giờ, chúng ta có thể thấy tất cả các lệnh được thêm ở trên bằng cách chạy lệnh này
npm runOutput
# npm-tips-and-tricks (name of our package) Lifecycle scripts included in npm-tips-and-tricks: test echo "Error: no test specified" && exit 1 start node index.js available via `npm run-script`: echo-hello echo "Hello" echo-helloworld echo "Helloworld" echo-both npm run echo-hello && npm run echo-helloworld echo-both-in-parallel npm run echo-hello & npm run echo-helloworld echo-packagename echo $npm_package_name echo-myvariable echo $npm_package_config_myvariable echo-passargument npm run echo-packagename -- "hello" echo-pipedata cat ./package.json | jq .name > package-name.txtChạy 1 đoạn script đơn gian
npm run echo-hello # Output > echo "Hello" HelloChạy multiple scripts trong 1 single npm script
Chúng ta có thể chạy nhiều câu lệnh bằng cách sử dụng &&.
npm run echo-both # Output > npm run echo-hello && npm run echo-helloworld > [email protected] echo-hello > echo "Hello" Hello > [email protected] echo-helloworld > echo "Helloworld" HelloworldChúng ta cũng có thể chạy song song nhiều tập lệnh bằng cách sử dụng &
npm run echo-both-in-parallel # Output > npm run echo-hello & npm run echo-helloworld > [email protected] echo-hello > echo "Hello" > [email protected] echo-helloworld > echo "Helloworld" Hello HelloworldSử dụng biến môi trường npm trong tập lệnh npm
npm run echo-packagename # Output > echo $npm_package_name npm-tips-and-tricks ------------- npm run echo-myvariable # Output > echo $npm_package_config_myvariable Hello WorldTruyền đối số cho tập lệnh npm
Chúng ta có thể sử dụng -- để truyền đối số cho tập lệnh npm. Trong ví dụ dưới đây, chúng ta truyền hello như một đối số cho tập lệnh echo-packagename
npm run echo-passargument # Output > npm run echo-packagename -- "hello" > [email protected] echo-packagename > echo $npm_package_name "hello" npm-tips-and-tricks helloSử dụng Pipe để truyền dữ liệu từ tập lệnh npm này sang tập lệnh khác
npm run echo-pipedata # Output > cat ./package.json | jq .name > package-name.txt # Let's cat package-name.txt cat package-name.txt # Output "npm-tips-and-tricks"6. Quickly navigate to package docs
Chúng ta có thể nhanh chóng điều hướng đến tài liệu của bất kỳ gói npm nào bằng cách chạy lệnh này
npm docs <package-name> OR npm home <package-name>Nếu chúng ta muốn kiểm tra các issue hoặc gửi bất kỳ lỗi nào trong gói npm, chúng ta cũng có thể điều hướng đến trang web bằng cách chạy lệnh này
npm bug <package-name>Tương tự, npm repo <package-name> mở trang repo GitHub trong trình duyệt
7. Removes duplicate packages
Chúng ta có thể loại bỏ các dependencies trùng lặp bằng cách chạy lệnh npm depupe. Nó đơn giản hóa cấu trúc tổng thể bằng cách loại bỏ các gói trùng lặp và chia sẻ hiệu quả sự phụ thuộc chung trên nhiều gói phụ thuộc. Nó dẫn đến một cây phẳng và không trùng lặp
npm dedupe hoặc npm ddp8. Scan your application for vulnerabilities
Chúng ta có thể chạy lệnh npm audit để quét dự án của chúng ta xem có lỗ hổng nào trong bất kỳ dependency. Nó tạo ra một đầu ra đẹp mắt ở định dạng bảng (chúng ta cũng có thể nhận đầu ra dạng JSON) , với các gói khác phụ thuộc vào gói này nếu đó là multi-level/multi dependency.
npm audit fix tự động cài đặt phiên bản vá (nếu có) của tất cả các gói dễ bị tấn công
npm audit fix9. Check our environment
Chúng ta có thể sử dụng lệnh npm doctor để chạy nhiều kiểm tra trên môi trường của chúng ta, check xem npm CLI của chúng ta có đủ quyền để cài đặt các gói javascript hay không và nó có thể kết nối với sổ đăng ký npm hay không. Nó cũng kiểm tra các phiên bản node và npm, xác nhận bộ đệm cho bất kỳ gói bị hỏng nào.
npm doctor
10. Check outdated packages
Chúng ta có thể sử dụng lệnh npm outdated để kiểm tra tất cả các gói npm đã lỗi thời. Nó cũng hiển thị phiên bản mới nhất sẽ được cài đặt cho bất kỳ gói lỗi thời nào.
npm outdated --long or npm outdated -l
Chúng ta cũng có thể kiểm tra phiên bản mới nhất cho bất kỳ gói npm nào bằng cách chạy lệnh này
# Shows the package information npm view <package-name> or npm v <package-name> # Shows the latest version only npm v <package-name> version # Shows the list of all versions npm v <package-name> versions11.List all the installed packages
Chúng ta có thể liệt kê tất cả các gói npm được cài đặt trong dự án của chúng ta chỉ bằng cách chạy lệnh npm list. Nó sẽ tạo ra một cấu trúc cây hiển thị gói đã cài đặt và các phụ thuộc của nó
npm list or npm ls
Chúng ta có thể dùng thêm tùy chọn --depth để giới hạn độ sâu
npm ls --depth=1
Trong bài viết này, tôi đã chia sẻ về một số mẹo và thủ thuật NPM hữu ích mà chúng ta có thể sử dụng để tăng năng suất. Có thể có rất nhiều thủ thuật / mẹo như vậy. Tôi rất thích nghe về chúng trong phần bình luận
Nguồn https://blog.bitsrc.io/
Từ khóa » Các Câu Lệnh Npm
-
Tổng Hợp Các Câu Lệnh NPM (Node Package Manager) Cơ Bản
-
NPM Là Gì? Sử Dụng NPM Hiệu Quả để đơn Giản Hóa Công Việc
-
Npm - Hướng Dẫn Làm Quen Và Sử Dụng Câu Lệnh - Code Tốt
-
Hướng Dẫn Cơ Bản Sử Dụng NPM Như Một Build Tool (part 1) - Viblo
-
NPM Là Gì? Cài đặt NPM, Các Câu Lệnh NPM - ThucHa.Info
-
Tìm Hiểu NPM Là Gì? Công Dụng Và Cách Thức Hoạt động Của NPM
-
Npm Audit Là Gì? 10 Lệnh Npm Lập Trình Viên Cần Biết! - Anonystick
-
8 Thủ Thuật Npm Bạn Không Thể Không Biết - MindX Blog
-
NPM Là Gì? Công Dụng Và Cách Thức Hoạt động Của NPM - Vietnix
-
Cùng Tìm Hiểu Về Npm Và Package - CodeLearn
-
NPM Là Gì?
-
Laravel Mix Câu Lệnh Npm Run Watch, Dev, Hot, Production
-
Sử Dụng Tập Lệnh Npm Trong Quá Trình Phát Triển
-
Npm Là Gì Diễn Giải Npm Init Là Gì - Top Công Ty, địa điểm, Shop ...