javascript - Webpack 在脚本中导入一个节点模块

标签 javascript angular webpack

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

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

moment is not defined 如果我想使用它,则会引发错误。我尝试使用 require 导入时刻,但没有考虑到。

问题是脚本 src 标签在本地有效,但在 webpack 构建的版本中,我们需要部署的 node_modules 路径不再存在。除了在 lib 文件夹中硬粘贴 moment.min.js 之外,还有其他方法吗?

最佳答案

在webpack.conf.js中添加如下代码:

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

现在您可以简单地在您的 js 文件中执行 require('moment')

注意:默认情况下,webpack 在 node_modules 文件夹中搜索文件。您可以使用解析对象的 modules 属性指示它查看特定位置。 生成的代码如下所示:

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

关于javascript - Webpack 在脚本中导入一个节点模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42829932/

相关文章:

javascript - 动态添加<webview>无效

javascript - 将两个指令组合在一起

angular - 成功构建Angular后需要将dist文件夹复制到另一个文件夹

javascript - Webpack错误: Unexpected token

javascript - Webpack Split Chunks Plugin 覆盖缓存组,正则表达式匹配错误?

javascript - 如何在 javascript/typescript 事件回调中访问此内容,同时保留删除事件监听器的能力?

javascript - jQuery Each Loop 不从迭代中获取数据

javascript - 如何在 JavaScript 中正确填充下拉列表?

javascript - 在 DOM 之后加载 Angular 数据

Angular rxjs Observable.timer 不是带导入的函数