Tôi tin rằng đây là cách sạch nhất mà tôi đã thấy nó được thực hiện.
Về cơ bản, chúng tôi sẽ ghi đè phần bản sao của tập lệnh xây dựng ion. Họ đã tạo ra các kịch bản xây dựng để khuyến khích điều này và làm cho nó đơn giản.
Giả sử bạn đã sử dụng NPM để cài đặt bất cứ điều gì bạn cần thư viện:
npm install chart.js --save
(dùng để cài đặt thư viện chart.js vào thư mục node_packages trong thư mục gốc của dự án)
Nhìn vào /node_modules/@ionic/app-scripts/config/copy.config.js. Đây là những gì chúng tôi đang ghi đè, vì vậy hãy sao chép nội dung của nó vào một tệp tại /config/copy.config.js (Bạn sẽ cần phải tạo thư mục/config).
module.exports = {
include: [
{
src: '{{SRC}}/assets/',
dest: '{{WWW}}/assets/'
},
{
src: '{{SRC}}/index.html',
dest: '{{WWW}}/index.html'
},
{
src: '{{SRC}}/manifest.json',
dest: '{{WWW}}/manifest.json'
},
{
src: '{{SRC}}/service-worker.js',
dest: '{{WWW}}/service-worker.js'
},
{
src: 'node_modules/ionic-angular/polyfills/polyfills.js',
dest: '{{BUILD}}/polyfills.js'
},
{
src: 'node_modules/ionicons/dist/fonts/',
dest: '{{WWW}}/assets/fonts/'
},
{
src: './node_modules/chart.js/dist/Chart.bundle.min.js',
dest: '{{BUILD}}/Chart.bundle.min.js'
},
]
};
Phần cuối cùng là phần chúng tôi đã thêm vào, để sao chép tệp chart.js vào nơi nào đó sẽ thực sự được đưa vào bản dựng.
Để có được kịch bản của chúng tôi được sử dụng, package.json cần phải được thông báo về điều đó, vì vậy thêm này "cấu hình" để tập /package.json của bạn:
"config": {
"ionic_copy": "./config/copy.config.js"
},
Bây giờ khi bạn xây dựng, các tập tin sẽ được sao chép, và nó rõ ràng là dễ dàng hơn sau khi một trong những đầu tiên được thực hiện, để thêm nhiều hơn nữa. Có những phần khác của quá trình xây dựng ion, bạn cũng có thể ghi đè lên, nó đáng để xem xét.
https://ionicframework.com/docs/v2/resources/app-scripts/
Bây giờ bạn có thể gọi nó trong một cách dễ dàng, một lựa chọn là bên trong index.html:
<script src="build/Chart.bundle.min.js"></script>
Những lợi ích được, nếu bạn cài đặt một bản cập nhật module, thay đổi tập tin sẽ được cập nhật trong xây dựng của bạn, và cũng có thể, tất cả mọi thứ hoạt động dễ dàng với vcs và thiết lập môi trường mới, như phụ thuộc được xử lý bởi npm, và phần mở rộng kịch bản của chúng tôi sẽ chăm sóc mọi thứ khác.:-)
Hy vọng điều đó sẽ hữu ích! :-)
Cảm ơn giải pháp. Nó hoạt động, sắp xếp. Tuy nhiên, kể từ khi tôi thêm "ionic_copy" vào package.json, tính năng tải lại trực tiếp của dự án Ionic 2 của tôi ngừng hoạt động. Hãy nói rằng tôi sửa đổi một tập tin .ts trên thư mục dự án của tôi, và lưu nó, tải lại trực tiếp nên làm mới dự án làm việc tự động nhưng bây giờ nó không. Bất kỳ đề xuất? – filipvkovic
Cảm ơn bạn vì giải pháp đó đã giúp ích rất nhiều. – lightstalker89
Đề xuất này hoạt động tuyệt vời! Tuy nhiên, nếu bạn không muốn thêm thẻ vào tệp chỉ mục của mình, hãy sử dụng các câu lệnh nhập khẩu trong tệp ts của bạn và câu lệnh @import trong tệp sass của bạn thay thế. Ghi đè copy.config.js yêu cầu bạn cũng ghi đè lên tệp watch.config.js để hoạt động tải lại trực tiếp của bạn hoạt động. Chỉ cần sao chép cấu hình ban đầu trong @ ionic/app-scripts/config và trỏ các lệnh require() đến vị trí node_modules tương đối. Chúc mừng – 4UmNinja