2013-07-09 26 views
7

Tôi đã viết một ứng dụng JavaScript bằng cách sử dụng requirejs để xử lý việc tiêm phụ thuộc. Tôi đã biên soạn tệp, nhưng tôi nhận được lỗi rõ ràng khi bao gồm nó dưới dạng tập lệnh:biên dịch chương trình javascript với requirejs để xóa yêu cầu phụ thuộc

Uncaught ReferenceError: define is not defined

Tôi muốn ứng dụng JavaScript của tôi KHÔNG phụ thuộc vào bộ tải AMD nếu nhà phát triển quyết định không sử dụng. Tuy nhiên, do sự phức tạp của ứng dụng, tôi muốn sử dụng nó để xử lý các phụ thuộc của ứng dụng của tôi.

Có trình biên dịch có sẵn để biên dịch JavaScript để loại bỏ sự phụ thuộc của AMD không? Tôi đã nhìn thấy một chút buzz xung quanh Grunt, nhưng đã không tìm thấy bất kỳ câu trả lời thẳng về việc có hay không này là một tính năng của Grunt.

Trả lời

5

Bạn không thể loại bỏ hoàn toàn yêu cầu/xác định sự phụ thuộc, nhưng bạn có thể thay thế nó bằng một thước đo nhỏ hơn nhiều mà không đưa ra bất kỳ hình phạt hiệu suất đáng kể nào. Xem phần How can I provide a library to others that does not depend on RequireJS? của hướng dẫn Tối ưu hóa:

If you are building a library for use on web pages that may not use RequireJS or an AMD loader, you can use the optimizer to combine all your modules into one file, then wrap them in a function and use an AMD API shim. This allows you to ship code that does not ship with all of RequireJS, and allows you to export any kind of API that works on a plain web page without an AMD loader.

almond is an AMD API shim that is very small, so it can be used in place of require.js when all of your modules are built into one file using the RequireJS optimizer. The wrap build config option will put a function wrapper around the code, or you can provide your own wrapper if you need to do extra logic.

Các vấn đề liên quan