我正在开始我的第一个角度应用程序(有关信息,它是angular2)。 我开始学习像nodejs,gulp等工具......
我有一个nodejs服务器,它服务于服务器和前端。
对于前端的东西,我有html,css,资源和我的js文件。 对于使用angular的,我在node_modules中有所有必需的依赖项。
我可以使用gulp进行打字稿管理。 我已成功设法将我的app js文件连接在“build”目标文件夹中。
现在,我想在那里复制我的libs / dependencies,这样我的index.html将有2个脚本包括:myapp.js和类似libs.js(minified angular和可能的任何其他libs)。
我找不到办法做到这一点。我在webpack中得到了一个结果,但它缩小了我在libs.js文件中的所有应用程序,并且我希望我的应用程序分开,以便我可以在非简化的js中为dev模式调试它。
有没有办法从node_modules中提取应用程序的任何必需库,缩小它们并在紧凑的libs.js中连接它们?
当我解析node_modules时,它是一个巨大的存储库(主要是由于与gulp,mocha等东西的服务器依赖关系......对于前端没什么用),我很确定采用所有node_modules / ** / *。js和concat然后不是一个好主意!
感谢您的回复。
答案 0 :(得分:0)
您可以使用browserify。它允许您像在node.js中一样使用require()
函数。还有gulp plugin。
例如,如果你想使用lodash,首先运行npm install --save lodash
,然后在你的javascript中你将拥有:
var _ = require('lodash');
// from here you can use lodash like normal
这些文件既可以由节点服务器编译,也可以由gulp预编译。
编译完成后,文件将与您使用require()
要回答您的评论,如果您要导出仅包含库的单独文件,则可以执行此操作
libs.jswindow._ = require('lodash');
window.$ = require('jquery');
// any other library
app.js
// here you can use the libraries like normal
console.log(_);
console.log($);
的index.html
<script type="text/javascript" src="js/libs.js"></script>
<script type="text/javascript" src="js/app.js"></script>
但我个人更喜欢只捆绑一个文件。