9

Tôi đang sử dụng grunt-vulcanize từ tệp Nhập có đường dẫn tương đối đến vulcanized.html ở vị trí mới. Khi tệp đã sẵn sàng, nó đã thay đổi đường dẫn tương đối đến vị trí mới. Điều đó hoạt động thực sự tốt cho các tệp tĩnh dưới dạng hình ảnh hoặc tệp, nhưng ...Thuộc tính polyme hóa lưu hóa một thời gian src thuộc tính

Trong tệp nhập, tôi có một số tệp phần tử polymer: paper-fab.html chẳng hạn. Nhập tập tin của tôi có một tài liệu tham khảo như:

<link rel="import" href="../myPolymerElementsFolder/paper-fab/paper-fab.html"> 

Như bạn có thể thấy trong line 113 of the imported file, nó có hai thuộc tính resolved by one-time-binding using brackets:

<iron-icon id="icon" src="[[src]]" icon="[[icon]]"></iron-icon> 

Vấn đề xuất hiện với src thuộc tính. Các lưu hóa giải nó như là một con đường, vì vậy nó thêm đường dẫn tương đối mới, giải quyết trong một cái gì đó như thế này:

<iron-icon id="icon" src="../myPolymerElementsFolder/paper-fab/[[src]]" icon="[[icon]]"></iron-icon> 

Nhưng thuộc tính đó được giải quyết bằng các polymerElement bản thân, vì vậy nó không được chứa bất kỳ đường dẫn tương đối -otherwise nó không thành công, vì vậy tôi cần phải loại bỏ nó bằng tay mọi lưu hóa. Nó sẽ hoạt động, khi nó là thuộc tính liên kết phần tử polymer, như thuộc tính icon. Giải quyết một cái gì đó như thế này:

<iron-icon id="icon" src="[[src]]" icon="[[icon]]"></iron-icon> 

Tôi hiểu rằng thuộc tính src là trường hợp đặc biệt cần thay thế đường dẫn tương đối, nhưng không phải trong trường hợp đặc biệt này.

Tôi đã thử với cấu hình sau đây mà không thành công:

grunt.initConfig({ 
    //(...) 
    vulcanize: { 
     default: { 
      options: { 
       excludes: ["finalFolder/_Imports.html"] 
      }, 
      files: { 
       "finalFolder/Vulcanized.html": "finalFolder/_Imports.html" 
      } 
     } 
    }, 
}); 

Bạn có biết nếu nó có thể giải quyết này thay đổi cấu hình của grunt-vulcanize? Tôi đã mở an issue trong trang chủ gitHub.

Trả lời

1

Có thể sử dụng grunt-string-replace plugin và thêm một nhiệm vụ mới đến tập tin grunt:

grunt.initConfig({ 
    //(...) 
    'string-replace': { 
     inline: { 
      files: { 
       'finalFolder/Vulcanized.html': 'finalFolder/Vulcanized.html', 
      }, 
      options: { 
       replacements: [ 
        // place files inline example 
        { 
         pattern: /[.]{2}\/Scripts\/bower\/.*\/\[\[src\]\]/g, 
         replacement: "[[src]]" 
        } 
       ] 
      } 
     } 
    } 
}); 
Các vấn đề liên quan