2016-10-04 96 views
2

新手前端开发人员在这里。在过去,为了包含第三方jquery插件,通常的做法是在HMTL中包含一个<script>标签,HMTL通常引用一些托管的js/css文件。托管的jQuery插件与npm包有什么区别?

现在使用npm包,你通常做npm install package_nameimport xx from 'package-name'。而且还有一些webpack会发挥作用,这只会让事情变得更加混乱。我知道在使用webpack时,你不应该把第三方的jquery插件绑定到最终的bundle.js输出。这是否意味着部署时,建议使用托管的css/js文件来解决依赖关系?

这两种方法有什么区别?一个用于开发,另一个用于部署?

回答

0

我认为差异在于web开发中的新趋势有新的要求,例如资源的延迟加载,所以现在,在html中包含脚本的旧方法并非有用,因为它不符合要求

1

导入第三方模块(不仅仅是)它有助于编写更多模块化的代码,并有助于将代码拆分为多个文件。这种模式的优点是,您不必通过在您的html脚本中明确定义来手动解决依赖关系。当一个项目增长时,很有可能失去对所有这些文件的控制,搞乱包含它们的订单并最终破坏一切。在导入的情况下,您可以在功能中定义什么是依赖关系,并且不依赖于将文件包含在html文档中的顺序。从所有浏览器,甚至从节点到现在,本地都不支持导入。所以,这里是Babel和webpack进场的时候。在你开发的时候,导入应该被翻译成浏览器和节点可以理解的东西,你可以使用babel来做这件事(从来没有和Webpack一起工作,但可能你也可以做同样的事情)。 Babel和Webpack将确保依赖性得到解决,最终将产生另一个js文件,它将被编译为浏览器和节点将理解的纯javascript。 Webpack和babel应该用于开发和部署。

还有其他一些模式可以用来包含像amd模式和common.js模式这样的模块(它与导入非常相似)。

相关问题