索引中的Webpack脚本

时间:2017-03-14 14:35:08

标签: javascript angular webpack

我最近完成了将Webpack添加到我的Angular2 Web应用程序中,并且我遇到了一些外部库变量的问题。

我想使用例如moment.js并且我需要声明片刻,我曾经像declare var moment那样做但是在webpack过渡之后我不得不添加一个脚本导入来获取它,所以{{1 }}

问题是,当我想构建要在test或prod中部署的应用程序时,它仍然尝试从<script src="./../node_modules/moment/min/moment.min.js"></script>导入不再存在的JS文件。

有谁知道如何使它工作,所以它适用于本地的非缩小环境+缩小测试/产品?谢谢!

2 个答案:

答案 0 :(得分:2)

你应该在main或app.ts文件中要求moment.js。

import 'moment';

答案 1 :(得分:1)

您不应该手动从node_modules文件夹中获取带有脚本标记的javascript。 NPM和webpack是专门为您设置的,因此您可以从node_module导入带有'require'或'import'的javascript。

使用其中任何一个,它们将潜入您的node_modules文件夹并查找相应的包。

Moment

使用上面这段代码,您将{{1}}的变量设置为您从node_modules文件夹中获取的javascript。

您抓取该文件夹的具体javascript取决于每个节点模块具有的package.json。要了解更多信息,您可以快速了解如何自己创建节点模块:

weird behavior - particle clouds incorrectly assembled and displayed in a skewed grid

webpack的入门文档也应该可以帮到你。它们描述了整个过程,但不使用moment.js,而是使用lodash(另一个NPM包):

https://quickleft.com/blog/creating-and-publishing-a-node-js-module/

“创建捆绑”部分应该可以帮助您顺利前进。