我最近完成了将Webpack添加到我的Angular2 Web应用程序中,并且我遇到了一些外部库变量的问题。
我想使用例如moment.js并且我需要声明片刻,我曾经像declare var moment
那样做但是在webpack过渡之后我不得不添加一个脚本导入来获取它,所以{{1 }}
问题是,当我想构建要在test或prod中部署的应用程序时,它仍然尝试从<script src="./../node_modules/moment/min/moment.min.js"></script>
导入不再存在的JS文件。
有谁知道如何使它工作,所以它适用于本地的非缩小环境+缩小测试/产品?谢谢!
答案 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。要了解更多信息,您可以快速了解如何自己创建节点模块:
webpack的入门文档也应该可以帮到你。它们描述了整个过程,但不使用moment.js,而是使用lodash(另一个NPM包):
https://quickleft.com/blog/creating-and-publishing-a-node-js-module/
“创建捆绑”部分应该可以帮助您顺利前进。