- Tạo ứng dụng Spring Boot bằng Spring Launchizr
- Cấu hình Cassandra trong Spring Boot
- Định cấu hình nhóm kết nối Tomcat trên Spring Boot
- Định tuyến tin nhắn Camel đến Artemis được nhúng bằng WildFly
Bài viết này được chia sẻ từ Cộng đồng Huawei Cloud"Điều gì xảy ra khi bạn chạy lệnh npm run?", tác giả: Gentle_zhou.
Trước đây đã đăng một bài viết"Điều gì xảy ra khi tôi chạy lệnh cài đặt npm?"bài viết phân tích đầu vàocài đặt npm
Một chuỗi những gì xảy ra sau một lệnh. Mấy bạn đọc bài hỏi mình rồi chạychạy npm
Điều gì sẽ xảy ra sau lệnh, bài viết này ở đây.
Khi chúng ta sử dụng npm (trình quản lý gói nút) để quản lý các dự án JavaScript/TypeScript, một tệp pack.json sẽ được tạo trong thư mục gốc của dự án. Trường script trong tệp này được sử dụng để điều chỉnhnpm chạy XXX
ra lệnh. Ví dụ: hãy xem tệp pack.json trong hình bên dưới:
"name": "angular-cli-xxxx-project", "version": "0.0.0", "scripts": { "ng": "ng", "start": "node ./src/index.js ", "build": "ng build", "watch": "ng build --watch --configuration Development", "test": "ng test" }
Vì vậy, khi chúng ta chạynpm chạy xây dựng
Khi thực thi lệnh, bạn sẽ tìm thấy nó trong trường script.xây dựng
tương ứngxây dựng
Lệnh để thực hiện. Một số bạn có thể hỏi, tại sao nó không thể được thực hiện trực tiếp?xây dựng
Đơn đặt hàng ở đâu? Bởi vì điều này sẽ báo lỗi nên chỉ có các lệnh liên quan đến npm trong hệ điều hành là không tồn tại.xây dựng
Lệnh này; khi chúng ta tải xuống và cài đặt các phần phụ thuộc, một tệp thực thi có tên ng sẽ được tạo trong thư mục node_modules/.bin:
Thư mục .bin không phải là bất kỳ gói npm nào. Các tệp thực thi trong đó đều là các liên kết mềm; các thư mục khác trong thư mục node_modules là từng mô-đun phụ thuộc được tải xuống.
Trong thư mục .bin, thường có ba tệp thực thi cho một mô-đun phụ thuộc. Một tệp không có hậu tố là tập lệnh shell tương ứng với hệ thống Unix, tệp có hậu tố .cmd là tập lệnh windows bat và tệp còn lại. với hậu tố .ps1 Đây là một tệp thực thi trong PowerShell (có thể đa nền tảng),Ba chức năng này là sử dụng nút để thực thi tệp js.. Chúng ta có thể mở tệp có tên ng và xem nội dung của nó:
Từ đó, chúng ta biết rằng khi chúng ta chạynpm chạy xây dựng
Khi thực thi lệnh, mặc dù ng không được cài đặt trên toàn cầu, nhưng npm sẽ tìm tệp ng.js trong thư mục ./node_modules/.bin và thực thi nó dưới dạng tập lệnh nút, tương đương với việc thực thi../node_modules/.bin/ng xây dựng
lệnh (bản dựng cuối cùng được truyền vào dưới dạng tham số).
Vậy tại sao nó có thể được thực thi mặc định khi thực hiện lệnh start?nút server.js
Đơn đặt hàng ở đâu? Đó là vì nút đã được cài đặt trên toàn cầu và có thể được gọi trực tiếp. Thêm một từ nữa ở đây, nếu không có trường scriptbắt đầu
, sẽ không có lỗi nào được báo cáo và nó sẽ được thực thi theo mặc định.nút server.js
Đặt hàng.
ps: Nếu chúng ta chỉ chạychạy npm
lệnh, thì tất cả các lệnh script trong trường script sẽ được thực thi.
Chúng ta tiếp tục nhìn xuống dưới. Vì các file thực thi trong thư mục .bin là các liên kết mềm, vậy các file liên kết mềm này đến từ đâu? Làm sao npm biết những liên kết mềm này trỏ đến đâu?
Chúng ta có thể trực tiếp tìm kiếm ng.js trong tệp pack-lock.json trong thư mục gốc của dự án. Chúng ta có thể thấy rằng npm khai báo bin/ng.js là bin khi cài đặt:
Do đó, khi npm được cài đặt, tệp bin/ng.js được liên kết mềm với thư mục ./node_modules/.bin và npm sẽ tự động thêm node_modules/.bin vào biến $PATH, do đó ng không cần phải thêm được cài đặt trên toàn cầu Bây giờ, bạn có thể chạy và phát triển các chương trình phụ thuộc trực tiếp dưới dạng lệnh. Nói cách khác, một liên kết mềm tương đương với một ánh xạ.npm runxxx
Khi , bạn sẽ tìm thấy tệp ánh xạ tương ứng trong thư mục node_modules/.bin, sau đó tìm tệp js tương ứng để thực thi.
Và nếu chúng ta muốn sử dụng trực tiếp lệnh cài đặt chung mà không cần sử dụng liên kết mềm, chúng ta cần sử dụngcài đặt npm -gxxx
Để cài đặt phần phụ thuộc này, tệp bin trong xxx sẽ được thêm vào toàn cục theo cách này, giống như nút, bạn có thể sử dụng trực tiếp như vậy;bản dựng xxx
Một mệnh lệnh như vậy.
Nhấp để theo dõi và tìm hiểu về các công nghệ mới của Huawei Cloud càng sớm càng tốt~
đóng cửa. Câu hỏi này lạc đề. Hiện tại nó không chấp nhận câu trả lời. Bạn muốn cải thiện câu hỏi này? Đã cập nhật câu hỏi để nó phù hợp với chủ đề về Stack Overflow. Đóng cửa 9 năm trước Cải thiện điều này
Tôi có một loạt lệnh SQL mà tôi muốn chạy trên khoảng 40 bảng khác nhau. Phải có cách để thực hiện việc này mà không cần phải viết 40 lệnh khác nhau... Tôi đang chạy lệnh này trong SQL Server. Tất cả các bảng đều có tên khác nhau và tôi muốn hoạt động
Tôi đã quen với việc sử dụng lệnh "mysql_insert_id()" trong PHP để trả về id của hàng cuối cùng được chèn vào cơ sở dữ liệu của tôi. Có lệnh tương đương trong SQLite trong C# không? Cảm ơn bạn! -Adena Lựa chọn câu trả lời hay nhất l
Đang cố gắng tìm ra cách lấp đầy các phân vùng của bảng Hive được phân vùng ds. Tôi biết cách chạy các lệnh Hive từ CLI như $HIVE_HOME/bin/Hive -e 'select a.col from tab1
Tôi có tập tin .bat. Có vẻ như cái tiếp theo....nhiều lệnh1 ftp -i -s:copy.txt ...nhiều lệnh2 copy.txt chứa lệnh tiếp theo mở...
Về cơ bản, tôi muốn gõ show và kiểm tra xem lệnh show hoặc bí danh có được xác định hay không và kích hoạt nó, nếu không thì kích hoạt git show. Ví dụ: rm nên thực thi rm nhưng kiểm tra nên thực hiện kiểm tra git
Cơ sở dữ liệu chính của công ty tôi là một máy iSeries và tôi rất quen với việc sử dụng các lệnh và cấu trúc DB2. Tôi đang cố gắng thực hiện một dự án nhỏ, cập nhật một bảng có hơn 3 triệu bản ghi. Tôi đã tìm ra cách nhanh hơn để so sánh và "làm sạch" dữ liệu là sử dụng My
Tôi muốn tạo một nút bấm đơn giản trong terminal bằng Node và "may mắn" để kết nối hoặc chạy các lệnh khác nhau. ----------------------------------------------- _
Chúng tôi có tập lệnh IDE selen đang được chuyển đổi sang trình quản trị web python. Các lệnh sau chưa được chuyển đổi: [openWindow |
Tôi đang làm theo hướng dẫn trực tuyến này về cách tải xuống và cài đặt các tệp web từ GIT HUB. Tôi nhập chủ đề: Khởi chạy trang web tĩnh của chúng tôi và được nhắc nhập lệnh tải xuống và cài đặt các tệp web. Tuy nhiên, khi tôi nhập lệnh cài đặt sợi
Tôi gặp sự cố khi sử dụng lệnh elif trong tập lệnh shell, giống như trong fortran. Tôi có một danh sách nhân viên từ 100 công ty. Tôi muốn chặn các công ty có ít hơn 500 nhân viên. Tập lệnh của tôi là danh mục rm -f
Tôi có một số lệnh Linux để tạo mã thông báo. Tôi đã tự động hóa các lệnh này trên máy Linux bằng Python làm thư viện hệ điều hành. Nó hoạt động tốt. Tuy nhiên, khi tôi thử mã tương tự trong Windows, nó không trả về
Bài viết này được chia sẻ từ Cộng đồng Huawei Cloud "Bạn có thể chưa biết Bộ lưu trữ tạm thời tương tác của Git", tác giả: Long Ge's Notes. Một số lệnh Git tương tác trong phần này có thể giúp bạn kết hợp các phần cụ thể của tệp thành các lần xác nhận. Khi bạn sửa đổi một số lượng lớn tệp, bạn muốn những thay đổi này được chia thành nhiều lần xác nhận
Tôi muốn biết cách thực hiện việc này bằng cú pháp so sánh IN. Truy vấn SQL hiện tại là: chọn * từ nhân viên ở đâu (employeeName = 'AJAY' và tháng(e
Tôi đã cài đặt Hadoop ở vị trí này /usr/local/hadoop$ Bây giờ tôi muốn liệt kê các tệp trong dfs. Lệnh tôi đã sử dụng là: hduser@ubuntu:/usr/local/hadoop$ bin/ha
Có một lệnh docker nào có thể được sử dụng để xóa mọi thứ không? Nếu đang chạy, hãy dừng tất cả các vùng chứa, xóa tất cả hình ảnh, xóa tất cả các tập... vv. Câu trả lời hay nhất Tôi không nghĩ có một lệnh nào có thể thực hiện được việc này. Trước tiên bạn cần dừng tất cả các container bằng cách sử dụng $d
Về cơ bản, tôi đang tìm kiếm tương đương với Cu Cx Ce hoặc Cc Cp ở chế độ clojure/nrepl. Tôi muốn Cx Ce in đầu ra vào bộ đệm thay vì chỉ trong phần thay thế.
Tôi có thể sử dụng pudb (trình gỡ lỗi Python ncurses) trong vim vì, ví dụ: :!python % chạy trong một cửa sổ đầu cuối thực tế. Tôi thích sử dụng gvim hơn, nhưng gvim lại chạy:!python
Tôi đang cố viết lệnh FFMPEG: lấy đầu vào là video input.mp4 và hình ảnh pic.jpg làm đầu ra, chia input.mp4 thành 20 giây video, đổi tên chúng theo thứ tự cho mỗi chế độ xem phân tách;
Tôi muốn giảm tốc độ bit của từng khung hình của video. Tôi đang cố lấy thông tin này bằng lệnh -vstats. Khi tôi chạy lệnh này - ffmpeg -i input.mp4 -vstats, nó hiển thị rằng ít nhất một tệp phải được xác định. Nếu ai đó có thể gợi ý cho tôi bất kỳ
Tôi là một lập trình viên xuất sắc, rất giỏi!