Javascript 网页包在脚本中导入节点模块
我有一个Webpack angular 2应用程序,我有一个日期选择器模块依赖项,该模块依赖于使用矩的库。问题是如果我不像这样导入它:Javascript 网页包在脚本中导入节点模块,javascript,angular,webpack,Javascript,Angular,Webpack,我有一个Webpack angular 2应用程序,我有一个日期选择器模块依赖项,该模块依赖于使用矩的库。问题是如果我不像这样导入它: <script src="./../node_modules/moment/min/moment.min.js"></script> 未定义时刻如果我想使用它,则会引发错误。我试着用require导入这个时刻,但没有考虑到 问题是脚本src标记在本地工作,但在webpack构建版本中,我们需要部署带有节点_模块的路径不再存在。除了在
<script src="./../node_modules/moment/min/moment.min.js"></script>
未定义时刻
如果我想使用它,则会引发错误。我试着用require导入这个时刻,但没有考虑到
问题是脚本src标记在本地工作,但在webpack构建版本中,我们需要部署带有节点_模块的路径不再存在。除了在lib文件夹中硬粘贴moment.min.js之外,还有其他方法吗?在webpack.conf.js中添加以下代码:
resolve: {
alias: {
'moment': 'moment/min/moment.min'
}
}
现在,您只需在js文件中执行,require('moment')
注意:默认情况下,webpack会在node\u modules
文件夹中搜索文件。您可以指示它使用resolve object的modules
属性查看特定位置。
生成的代码如下所示:
resolve: {
modules: ['lib/','some_folder/node_modules'...],
alias: {
'moment': 'moment/min/moment.min'
}
}
谢谢你的回答,应用程序编译了,它似乎被考虑了,但是DeDePikor仍然不想用导入来考虑它:(@ GuigUI,你能共享错误代码吗?同样,你在配置文件中传递的上下文是什么?所以在我的App.Copyt.ts中,我提出了一个<代码>要求(“时刻”)。在顶部,我还将
别名:{'moment':'moment/moment'}
放在webpack conf文件的解析中,对于错误消息,我在./Ng2DatetimePickerComponent类Ng2DatetimePickerComponent-内联模板中得到了一个错误:36:4原因:未定义矩
现在您可以简单地执行,require('moment'))在您的js文件中-不,您不能。像大多数库一样,UMD模块在模块化环境中不公开全局。因此它应该导入到使用它的文件中。所以我不明白为什么这里应该使用alias
。它应该像任何其他js库一样对待,可能有TS类型。@guigui不依赖全局。Doconst moment=require('moment')
在使用它的文件中。