'react-scripts' không được nhận dạng là lệnh nội bộ hay lệnh bên ngoài


94

Tôi có một dự án maven, trong đó dự án JavaScript được nhân bản dưới dạng mô-đun con git. Vì vậy, cấu trúc thư mục trông giống như

mavenapp/src/main/javascript/[npm project files]

bên trong package.json của tôi, bài kiểm tra trông như thế này: "test": "react-scripts test --env=jsdom",

nhưng khi tôi cố gắng chạy thử nghiệm npm được thông báo

'react-scripts' không được nhận dạng là lệnh nội bộ hay lệnh bên ngoài,

Thật thú vị khi tôi sao chép dự án javascript một cách độc lập, tôi không gặp lỗi này. Tôi đã thử chạy lại npm install.

npm version : 5.5.1

node version : 9.3.0


trong khi tôi đã giải quyết vấn đề này kể từ khi giải quyết vấn đề này, tôi đánh giá cao rằng nó đã thu hút được một chút sự chú ý và do đó, có thể hữu ích khi đánh dấu một câu trả lời là câu trả lời đúng ... mở cho các đề xuất từ ​​cộng đồng xem đó sẽ là câu trả lời .
J Smith

Câu trả lời:


79

Đó là lỗi về tệp phản ứng-script bị thiếu trong thư mục mô-đun nút của bạn tại thời điểm cài đặt.

Kiểm tra sự phụ thuộc tập lệnh phản ứng của bạn có khả dụng hay không trong package.json

Nếu không có sẵn, hãy thêm thủ công qua:

npm cài đặt kịch bản phản ứng --save


11
KHÔNG làm điều này, điều này có thể gây ra sự cố với các dự án khác ... bạn KHÔNG nên cài đặt các kịch bản phản ứng trên toàn cầu như thế này. Tham khảo thêm tại đây: github.com/facebook/create-react-app/issues/…
Rosdi Kasim,

5
@RosdiKasim Sau khi đọc bình luận của bạn, tôi đã nhận ra lỗi của mình. Bây giờ, tôi đã thay đổi lệnh cho dự án cụ thể thay vì toàn cục (-g).
Yogesh Borad

Không có gì thay đổi đối với tôi, vẫn lỗi như cũ. Chạy "npm install react-scripts --save" ngay cả khi thành công không tạo bất kỳ thư mục react-scripts nào trong thư mục npm_modules. Tôi đang sử dụng Windows10
Giox

@RosdiKasim, dựa trên nhận xét của bạn, bạn nên theo dõi phần cuối của chuỗi trên Github. Tôi đã chạy trên cùng một vấn đề và cố định bằng cách làm như thế này stackoverflow.com/a/54403797/8719007 (câu trả lời dưới đây)
Serge Kishiko

45

Bạn đã thử chưa:

rm -rf node_modules && npm install

Xóa node_modulestrước, thường có xu hướng sửa rất nhiều vấn đề kỳ lạ, liên quan đến gói như vậy trong Node.


2
vâng, tôi có ... không có gì khác biệt ... Bây giờ tôi chỉ cần gỡ bỏ mô-đun con và dán nó vào theo cách thủ công.
J Smith

Hmm, bạn không thấy bất kỳ lỗi nào được ghi lại từ của bạn npm installphải không? Hãy thử chạy một npm install -fvà xem có gì thay đổi không. Có thể là một gói khác không thể cài đặt và chặn create-react-appcài đặt hoàn toàn. Buộc cài đặt npm với -f, btw, không bao giờ là một giải pháp hoàn chỉnh .... chỉ là một bước khắc phục sự cố. Nếu bất kỳ điều gì thay đổi sau khi bạn chạy nó, thì bạn biết có điều gì đó không ổn với một trong các gói.
Jonny Asmar

Ngoài ra, bạn có thể muốn xác minh rằng bạn có tệp tại javascript/node_modules/.bin/react-scripts. Nếu không, có thể có một số nguyên nhân khác nhau gây ra điều này, bao gồm các vấn đề về quyền, các hạn chế của hệ điều hành trong việc tạo liên kết tượng trưng (mọi thứ trong node_moduels/.binliên kết biểu tượng được tạo khi cài đặt. Cũng có thể là bạn chưa cài đặt tập lệnh phản ứng ... hãy thử chạy npm install --save react-scriptsvà xem giúp.
Jonny Asmar

1
Di chuyển từ MacOS sang Windows (Dropbox đã đồng bộ hóa tất cả các node_modulesthư mục) - chỉ xóa thư mục và cài đặt lại đã giải quyết được nó
AS

Đúng - đó là những gì lệnh trên thực hiện. Triệu chứng của bạn có thể do một số gói thực hiện quy trình cài đặt có điều kiện trên mỗi hệ điều hành. Linux, Mac và Windows có khá nhiều khác biệt với nhiều phụ thuộc cơ bản của dự án.
Jonny Asmar

31

Nếu react-scriptscó mặt trongpackage.json

Nếu bạn thấy thứ gì đó như thế này "react-scripts": "2.1.3"trong pakage.jsontệp của mình thì chỉ cần nhập lệnh này

npm install

Nếu react-scriptskhông có trongpackage.json

Nếu không có gì giống như "react-scripts"trong package.jsontệp của bạn thì có thể bạn chưa cài đặt nó. Để làm điều đó, hãy nhập lệnh sau và bạn sẽ hoàn tất

npm install react-scripts --save


1
Điều gì sẽ xảy ra nếu tôi có nó trong package.json của mình và cũng cài đặt nó, nhưng gặp phải vấn đề tương tự?
Serob_b

@Serob_b Đôi khi tôi cũng gặp vấn đề tương tự trong trường hợp đó tôi chỉ chạy "npm install" và nó giải quyết được vấn đề. hoặc bạn luôn có thể xóa thư mục node_modules bằng cách nhập rm "-rf node_modules" vào terminal và sau đó chạy "npm install". hy vọng điều này sẽ giúp
Hadi Mir

10

Trong tình huống của tôi, một số vấn đề đã xảy ra với gói nút của tôi. Vì vậy, tôi chạy npm audit fixvà nó đã khắc phục tất cả các vấn đề


9

Tôi phải đối mặt với cùng một vấn đề. Nhưng chạy lệnh cập nhật npm, nó đã giải quyết được vấn đề của tôi.


Đó là giải pháp. Cảm ơn.
Dzenis H.

3

tôi khắc phục sự cố này :-), chỉ cần gỡ cài đặt node.js của bạn và hiển thị các tệp ẩn

sau đó chuyển đến "C: \ Users \ yourpcname \ AppData \ Roaming \

sau đó xóa thư mục "npm" và "npm-cache"

và cài đặt phiên bản mới của node.js.


2
Đây không phải là một giải pháp thực sự.
Phani Rithvij

Điều này đã làm việc cho tôi.
UA

2

phản ứng-script không được nhận dạng là một lệnh nội bộ hoặc bên ngoài có liên quan đến npm.

Tôi sẽ cập nhật tất cả các phần phụ thuộc của mình trong tệp package.json của mình lên phiên bản mới nhất trong cả thư mục chính và thư mục khách nếu có. Bạn có thể thực hiện việc này bằng cách sử dụng dấu hoa thị "*" thay vì chỉ định số phiên bản cụ thể trong tệp package.json cho các phụ thuộc của bạn.

Ví dụ:

"dependencies": {
    "body-parser": "*",
    "express": "*",
    "mongoose": "*",
    "react": "*",
    "react-dom": "*",
    "react-final-form": "*",
    "react-final-form-listeners": "*",
    "react-mapbox-gl": "*",
    "react-redux": "*",
    "react-responsive-modal": "*",
  }

Sau đó, tôi sẽ đảm bảo rằng mọi package-lock.json đã bị xóa và sau đó chạy npm install và fiber install trong cả thư mục chính và thư mục máy khách nếu có.

Sau đó, bạn sẽ có thể chạy bản dựng sợi và sau đó sử dụng tính năng bắt đầu sợi để chạy ứng dụng.


Đây là lời khuyên tồi. Việc sử dụng *số phiên bản của bạn có vấn đề vì nó có thể khiến các phiên bản gói khác nhau được cài đặt trên các hệ thống khác nhau. Sử dụng khóa số phiên bản và cập nhật chúng khi cần thiết
Dana Woodman

Có thể mọi thứ hoàn toàn có thể sai ở đây vì mục đích sản xuất, nhưng chỉ là một ý tưởng cho mục đích thử nghiệm.
Ahmedakhtar11

2

Đối mặt với cùng một vấn đề, mặc dù tôi đang sử dụng sợi.

Những điều sau đây đã làm việc cho tôi:

yarn install 
yarn start

1

Đối với ứng dụng di động, thay đổi

package.json

như sau

"scripts": {
    "start": "node node_modules/.bin/react-scripts start",
    "build": "node node_modules/.bin/react-scripts build",
    "test": "node node_modules/.bin/react-scripts test",
    "eject": "node node_modules/.bin/react-scripts eject"
  }

0

Tôi đã thử nhiều giải pháp cho vấn đề này được tìm thấy trên mạng, nhưng trong trường hợp của tôi, không có gì hiệu quả ngoại trừ việc cài đặt lại NVM cho Windows (tôi đang sử dụng để quản lý nhiều phiên bản Node). Trong trình cài đặt, nó phát hiện các phiên bản Node đã cài đặt và hỏi người dùng xem họ có muốn NVM kiểm soát chúng hay không. Tôi đã nói có và NVM đã khắc phục tất cả các vấn đề về PATH. Kết quả là, mọi thứ hoạt động như trước đây. Sự cố này có thể có nhiều nguyên nhân, nhưng PATH bị hỏng chắc chắn là một trong số đó và (lại) cài đặt NVM sẽ sửa lỗi PATH.


0

Đây là câu hỏi khá cũ nhưng điều này có thể giúp ích một số cho việc tham khảo trong tương lai. Xóa thư mục node_modules và chạy lại cài đặt npm. Đã làm cho tôi.


0

Trong trường hợp của tôi, tôi đã chỉnh sửa tệp của mình trên Linux nơi tôi đã cài đặt nút v14.0.5, khi khởi động lại Windows nơi tôi có nút v14.0.3, tôi gặp lỗi tương tự. Vì vậy, tôi đã cập nhật phiên bản nút trên windows và tất cả đều ổn đối với tôi.


0

Đây là cách tôi sửa chữa nó

  1. Kiểm tra và cập nhật biến đường dẫn (Xem bên dưới về cách cập nhật biến đường dẫn)
  2. Xóa node_modules và package-lock.json
  3. chạy npm install
  4. chạy npm run start

nếu điều này không hiệu quả, hãy thử cài đặt nodejs và chạy sửa chữa

hoặc làm sạch bộ nhớ cache npm npm cache clean --force

Để cập nhật biến đường dẫn

  1. nhấn phím windows
  2. Tìm kiếm Edit the system environmental variable
  3. Bấm vào Environment Variables...
  4. trên phần dưới cùng của Biến hệ thống (sẽ có hai phần)
  5. Chọn Pathtên biến
  6. Nhấp chuột Edit..
  7. Kiểm tra xem có C:\Program Files\nodejstrong danh sách không, nếu không hãy thêm cái này

0

đã gặp sự cố tương tự .. tôi đã sử dụng sợi để sửa nó. Tôi nhận thấy rằng các tập lệnh phản ứng không được tìm thấy trong các mô-đun nút của tôi, vì vậy tôi đã quyết định tải xuống bằng npm nhưng dường như tôi cũng không thành công. vì vậy tôi đã thử sợi (sợi thêm các tập lệnh phản ứng) và điều đó đã giải quyết được cơn ác mộng! Hy vọng điều này cũng làm việc cho bạn. Chúc mọi người gỡ lỗi vui vẻ.


0

Đối với tôi, tôi chỉ cần cài đặt lại các tập lệnh phản ứng thay vì các tập lệnh phản ứng --save.


-1

Trong trường hợp của tôi, vấn đề liên quan đến việc không có đủ quyền truy cập tệp cho một số tệp mà cài đặt gói phản ứng-script sẽ ghi vào. Điều đã giải quyết được nó là chạy git bash với tư cách quản trị viên và sau đó chạy npm install --save react-scriptslại.


-2

Khi tôi tạo một dự án mới bằng React, để cài đặt các mô-đun React, tôi phải chạy "npm install" (PowerShell) từ trong thư mục ClientApp dự án mới (ví dụ: "C: \ Users \ Chris \ source \ repos \ HelloWorld2 \ HelloWorld2 \ Ứng dụng khách "). WebApp lõi .NET với React cần phải cài đặt các tệp React ở đúng vị trí để các lệnh React hoạt động bình thường.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.