2017-03-16 87 views
0

我有一個Webpack angular 2應用程序,並且我有一個使用Moment的庫的日期選取器模塊依賴項。問題是,如果我不導入這樣的:如果我想使用它Webpack導入腳本中的節點模塊

<script src="./../node_modules/moment/min/moment.min.js"></script> 

一個moment is not defined出現錯誤。我試圖用require來導入時間,但沒有考慮到它。

問題是,腳本src標籤在本地工作,但在webpack builded版本中,我們需要部署node_modules的路徑不再存在。有沒有辦法做到這一點,而不是在一個lib文件夾中粘貼moment.min.js?

回答

1

添加以下代碼在webpack.conf.js:

resolve: { 
    alias: { 
     'moment': 'moment/min/moment.min' 
    } 
} 

現在你可以簡單地做,require('moment')在你的js文件。

注意:默認情況下,webpack搜索node_modules文件夾中的文件。您可以指示它使用解析對象的modules屬性查看特定位置。 生成的代碼看起來像:

resolve: { 
    modules: ['lib/','some_folder/node_modules'...], 
    alias: { 
     'moment': 'moment/min/moment.min' 
    } 
} 
+0

謝謝您的回答,應用程序編譯,它似乎可以考慮,但仍日期選擇器並不想考慮以其他方式比使用進口:( – guigui

+0

@guigui燦你分享錯誤代碼?另外,你在配置文件中傳遞的上下文是什麼? –

+0

因此,在我的app.component.ts中,我確實在頂部放了一個'require'('moment')',我也把'alias:{'moment':'moment/moment'}'在webpack conf文件的解析中,以及錯誤消息,我得到一個錯誤./Ng2DatetimePickerComponent類Ng2DatetimePickerComponent - 內聯模板:36:4引起的:時刻沒有定義' – guigui