Javascript 网页包在脚本中导入节点模块

Javascript 网页包在脚本中导入节点模块,javascript,angular,webpack,Javascript,Angular,Webpack,我有一个Webpack angular 2应用程序,我有一个日期选择器模块依赖项,该模块依赖于使用矩的库。问题是如果我不像这样导入它: <script src="./../node_modules/moment/min/moment.min.js"></script> 未定义时刻如果我想使用它,则会引发错误。我试着用require导入这个时刻,但没有考虑到 问题是脚本src标记在本地工作,但在webpack构建版本中,我们需要部署带有节点_模块的路径不再存在。除了在

我有一个Webpack angular 2应用程序,我有一个日期选择器模块依赖项,该模块依赖于使用矩的库。问题是如果我不像这样导入它:

<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不依赖全局。Do
const moment=require('moment')
在使用它的文件中。