2017-12-03 288 views
-3

我有一個庫,我需要在項目中導出,但它是用JavaScript函數編寫的。我想導出並導入到我的多個項目中。如何將正常的javascript函數轉換爲導出?

function BlurImage(imageID, canvasID, radius, blurAlphaChannel, iterations){ 

var img = document.getElementById(imageID); 
var w = img.naturalWidth; 
var h = img.naturalHeight; 
    debugger; 
var canvas = document.getElementById(canvasID); 
    debugger; 
canvas.style.width = w + "px"; 
canvas.style.height = h + "px"; 
canvas.width = w; 
canvas.height = h; 

var context = canvas.getContext("2d"); 
context.clearRect(0, 0, w, h); 
context.drawImage(img, 0, 0); 

if (isNaN(radius) || radius < 1) return; 

} 

回答

0

正確的做法是在項目中使用包管理系統,例如Bower。開始使用起來很簡單,並且在其網站的首頁上有簡單的入門指導。

如果你的代碼需要是私有的,你可以將你的函數存儲在一個私有的git倉庫中,並將它們導入到你的項目中。有關如何做到這一點的信息,請參閱this post

+0

鮑爾似乎有點過時IMOD。除此之外,我猜他們希望將他們的代碼作爲獨立的JS文件包含在瀏覽器中(即,像來自CDN的捆綁和縮小的jQuery文件),而不是像使用NPM或Bower的Node項目那樣。 – Li357

0

您可以通過在函數前添加導出關鍵字來導出函數。

如果要導出每個文件的幾個功能,使用語法如下:

export function A() {...}; 
    export function B() {...}; 

如果你要導出每個模塊一個功能,使用默認的關鍵字:

export default function A() {...}; 

您也可以結合兩個策略在同一個文件中導出函數。有時您可能需要爲每個模塊導出一個,但可能需要測試其他功能。

export default function A() {...}; 
    export function B() {...}; 

現在,您可以導入功能集成到其他文件

import {A, B} from 'filename.js'; // non default functions 
    import A from 'filename.js'; // default function 
    import A, {B} from 'filename.js'; // combine default and non-default 

檢查:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export

+0

我試過導出函數A(){};並導入{A}形式'filenam.js'。它仍然會給出同樣的錯誤。 – Samir

+0

有一個錯字。它從不是形式。此外,錯誤消息說什麼? – cdoshi

+0

找不到模塊'filename.js'的聲明文件。 – Samir