Trong Mã VS, tôi gặp lỗi này, 'Không thể tải mô-đun. Đã cố tải đẹp hơn từ gói.json '


21

Khi tôi đang sử dụng VS Code và mở một dự án, tôi nhận được thông báo này ở góc dưới bên phải:

Failed to load module. If you have prettier or plugins referenced in package.json, ensure you have runcài đặt npmAttempted to load prettier from package.json.

Source: Prettier Code Format (Extension)

Chạy cài đặt npm không giải quyết điều này. Bất cứ ai cũng có ý tưởng tại sao đó là hoặc những gì tôi có thể làm để khắc phục nó?


Có vấn đề tương tự là tốt. Bạn có đứng sau proxy một cách tình cờ?
Bryce

Có vẻ như một số đường dẫn bị hỏng trên máy của tôi hoặc thiếu một cái gì đó. Chúng tôi có một gói.json với một kịch bản để chạy đẹp hơn và kẻ nói dối. Chạy tập lệnh từ tệp pack.json không áp dụng đẹp hơn nhưng nếu tôi tự định dạng nó (tùy chọn + shift + f trên máy mac) thì nó hoạt động. Vì vậy, kỳ lạ và khó chịu khi phải định dạng thủ công từng tập tin.
ghostagent151

Đây dường như là một "bổ sung" khá gần đây cho Mã VS. Mặc dù sử dụng đẹp hơn trong quá khứ, chúng tôi đã không quan sát vấn đề này. Tôi không biết từ phiên bản nào của Mã VS trở đi đã trở thành một vấn đề.
Manfred

Có vấn đề tương tự từ vài ngày trước. Không có proxy hoặc tường lửa - thứ gì đó đẹp hơn trong bản cập nhật Mã VS mới nhất
Hemal

3
Đây là vấn đề github liên quan. Họ đang tìm kiếm thêm thông tin về vấn đề này (và nếu có sẵn một repo có thể được chia sẻ). github.com/prettier/prettier-vscode/issues/1066
Kasper

Câu trả lời:


16

Đây là một giải pháp hiệu quả với tôi

1. Cài đặt Prettier toàn cầu qua npm nếu bạn chưa bao giờ cài đặt nó trên toàn cầu

npm i prettier -g

2. Tìm kiếm và sử dụng Prettier PathCài đặt tiện ích mở rộng trong Cài đặt mã VS của bạn

nhập mô tả hình ảnh ở đây

// Bạn có thể điều hướng đến Mã VS Settings > Extensions > Prettiercho tất cả các Cài đặt tiện ích mở rộng đẹp hơn

3. Cập nhật Prettier Pathlên Prettier được cài đặt toàn cầu của bạn.

Ví dụ

/usr/local/lib/node_modules/prettier (Hệ điều hành Mac)

\AppData\Roaming\npm\node_modules\prettier (Các cửa sổ)


Tôi đã cài đặt Prettier trên toàn cầu. Khi tôi đi vào cài đặt Mã VS, tôi tìm kiếm Prettier Path. Tôi thấy 2 lựa chọn ở đây, Prettier:Config PathPrettier: Prettier Path. Tôi đang sử dụng máy mac. Tôi nên thêm /usr/local/lib/node_modules/prettiervào cả hai đường dẫn hay chỉ đầu tiên?
ghostagent151

1
@ ghostagent151 chỉ là cái cuối cùng "Prettier: Prettier Path" theo ảnh chụp màn hình.
donovan

Đây là một vấn đề khác tôi đang thấy. Nếu tôi tải xuống tiện ích mở rộng đẹp hơn trong mã vs, tôi sẽ cài đặt các cài đặt của mình để khi lưu, nó sẽ tự động áp dụng mã đẹp hơn cho mã của tôi. Tuy nhiên, dường như có hai phiên bản khác nhau đẹp hơn đang được áp dụng. npm run prettierVí dụ, nếu tôi chạy từ dòng lệnh, các biến có chuỗi có dấu ngoặc kép sẽ được chuyển đổi thành dấu ngoặc đơn. Nếu tôi lưu và định dạng tự động được áp dụng, chúng sẽ được chuyển đổi thành dấu ngoặc kép. Không chắc chắn những gì đang xảy ra với điều đó.
ghostagent151

1
@ ghostagent151 Đây là một vấn đề khác. Chạy npm run prettiersử dụng đẹp hơn cục bộ trong dự án của bạn node_modulesnếu có package.jsontồn tại trong dự án. Lời khuyên của tôi là bạn nên tắt Mã VS formatOnSavenếu bạn sẽ sử dụng các quy tắc định dạng tùy chỉnh cho dự án của mình. Để tránh định dạng ghi đè.
Tunji Oyeniran

1
Đường dẫn đến các mô-đun được cài đặt toàn cầu của bạn sẽ khác nhau không chỉ phụ thuộc vào HĐH mà cả cách bạn cài đặt npm (tức là nvm, v.v.). Một cách dễ dàng để có được đường dẫn là chạynpm root -g
BoDeX

2

Cập nhật

Bây giờ nó hoạt động với tôi với prettier-vscode4.1.1 vàprettier 2.0.4, hãy dùng thử. Tôi có thể sử dụng phiên bản đóng gói hoặc cài đặt cục bộ của prettier.

Những thay đổi đáng chú ý :

  • [4.0.0] Cập nhật đẹp hơn lên 2.0
  • [4.1.0] Đã thêm tùy chọn cấu hình vớiNodeModules để cho phép xử lý các tệp trong thư mục node_modules [default: false]
  • [4.1.0] Hỗ trợ tải Prettier từ node_modules ngay cả khi nó không xuất hiện dưới dạng phụ thuộc trực tiếp trong gói.json

Bài gốc

Tôi gặp phải vấn đề này khi kiểm tra mã nguồn của gói bên ngoài node_modules.

Một cách giải quyết là loại bỏ prettiermục nhập trong package.jsongói này - không prettiercần cài đặt cục bộ / toàn cầu . Ví dụ :

{
  "devDependencies": {
    ...
    "prettier": "^1.19.1", // remove this line completely
  },
}

Giữ package.jsongiá trị - không có dấu phẩy, không chỉ nhận xét dòng. Lý do tại sao nó hoạt động là:

Tiện ích mở rộng tìm kiếm cây xuống cho đến khi chúng tôi gửi gói.j.j Nếu gói.json chứa đẹp hơn, tiện ích mở rộng sử dụng điều đó, nếu không, nó sẽ quay trở lại sử dụng phiên bản đóng gói đẹp hơn. Liên kết

Tôi đoán là, tiện ích mở rộng muốn sử dụng prettiertừ gói, ngay cả khi đó làdevDependencies .

Không có hại để thả devDependencytừ một gói trong node_modules. Điều này cũng cho phép sử dụng prettierphiên bản đi kèm prettier-vscode(không cần cài đặt).


1

Tôi vừa chạy vào đây và phát hiện ra tôi có lỗi cú pháp trong tệp pack.json. Có một dấu phẩy trên một dòng, và đó dường như là nguyên nhân gốc rễ đối với tôi.

Tôi nhận thấy điều này bởi vì tôi thấy đầu ra sau đây khi thử chạy một số thử nghiệm Angular:

C:\... [feature/migrate-away-from-angular-http +2 ~6 -0 | +0 ~5 -0 !]> ng test
10% building 3/3 modules 0 active20 11 2019 21:11:18.638:WARN [karma]: No captured browser, open http://localhost:9876/
20 11 2019 21:11:19.575:INFO [karma-server]: Karma v4.1.0 server started at http://0.0.0.0:9876/
20 11 2019 21:11:19.576:INFO [launcher]: Launching browsers Chrome with concurrency unlimited
20 11 2019 21:11:19.594:INFO [launcher]: Starting browser Chrome

ERROR in ./src/app/app.component.spec.ts
Module not found: SyntaxError: C:\...\package.json (directory description file): SyntaxError: C:\...\package.json (directory description file): SyntaxError: Unexpected token } in JSON at position 167
 @ ./src/app/app.component.spec.ts 7:31-75
 @ ./src sync \.spec\.ts$
 @ ./src/test.ts
ERROR in ./src/app/app.component.ts

1

Khi thiết lập Prettier, điều quan trọng là phải định cấu hình cho từng dự án. Không phải mọi dự án đều sử dụng cùng một kiểu mã, do đó, điều quan trọng là phải tôn trọng phong cách của bất kỳ dự án nào bạn đang làm việc.

Repo demo bahmutov/prettier-config-examplecó hai thư mục con, mỗi thư mục có kiểu mã riêng biệt, được thi hành bởi Prettier. Trong thực tế, mỗi repos của bạn sẽ có phong cách của nó; Tôi đang sử dụng các thư mục con để giữ cho ví dụ đơn giản.

npm install --save-dev --save-exact prettier


1

Đã thử tất cả các giải pháp được cung cấp ở đây, không giúp được gì. Cập nhật mã Visual Studio đã khắc phục sự cố này.


0

Đã khắc phục sự cố này bằng cách thực hiện npm installtrên toàn cầu.

Tôi đã có vấn đề này khi tôi làm sạch node_nodules. Tôi đã eslintcùng với cài đặt đẹp hơn trên toàn cầu. Và khi tôi xóa node_moduleslỗi này, hiển thị.

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.