按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我正在学习JS,更有经验的人提到他们使用CommonJS来处理保持js代码的组织(因为没有“模块”功能)。我查看了Quora,但它解释了组及其目标,而不是我如何使用它。
Vue2中,使用Vite作为前端构建开发工具,替代webpack(二)常见问题——和webpack入口文件同名冲突&将commonjs转化为esmodule-cjs2esmodule常用问题【踩坑】1、vite目前要求入口文件必须是根目录下的index.html,如果之前的webpack入口文件同名,需要更改。解决方案:vite.config.js:import{injectHtml}from'vite-plugin-html';exportdefaultdefineConfig({plugins:[injectHtml({//入口文件index.html的模板注入injectData:{//
我不时听到CommonJShttp://www.commonjs.org/是创建一组模块化javascript组件的努力,但坦率地说,我从来没有理解过它。我可以在哪里使用这些模块化组件?我在他们的主页上看不到太多内容。 最佳答案 CommonJS只是一个标准,规定了一种将JavaScript模块化的方法,因此CommonJS本身并不提供任何JavaScript库。CommonJS指定了一个require()函数,它允许导入模块然后使用它们,模块有一个名为exports的特殊全局变量,它是一个包含将被导出的东西。//foo.js---
我不时听到CommonJShttp://www.commonjs.org/是创建一组模块化javascript组件的努力,但坦率地说,我从来没有理解过它。我可以在哪里使用这些模块化组件?我在他们的主页上看不到太多内容。 最佳答案 CommonJS只是一个标准,规定了一种将JavaScript模块化的方法,因此CommonJS本身并不提供任何JavaScript库。CommonJS指定了一个require()函数,它允许导入模块然后使用它们,模块有一个名为exports的特殊全局变量,它是一个包含将被导出的东西。//foo.js---
我想知道这些片段之间的区别是什么。var$=require('jquery');var_=require('underscore');varBackBone=require('backbone');和require(['jquery','underscore','backbone'],function($,_,BackBone){//codegoeshere})两者对我来说都很好,但不确定它们背后的目的是什么。 最佳答案 考虑第一个片段,它采用CommonJS样式:var$=require('jquery');var_=requir
我想知道这些片段之间的区别是什么。var$=require('jquery');var_=require('underscore');varBackBone=require('backbone');和require(['jquery','underscore','backbone'],function($,_,BackBone){//codegoeshere})两者对我来说都很好,但不确定它们背后的目的是什么。 最佳答案 考虑第一个片段,它采用CommonJS样式:var$=require('jquery');var_=requir
我注意到使用const和import在node.js应用程序中使用es6语法和Babel引用库之间的切换。首选方法是什么,使用const和import有什么区别?假设您可能在许多文件/组件中导入同一个库。常量constReact=require('react')导入importReactfrom'react'这是每个的定义,但我仍然不确定使用哪个。importimport语句用于导入从外部模块、另一个脚本等导出的函数、对象或原语。constconst声明创建一个对值的只读引用。这并不意味着它持有的值是不可变的,只是变量标识符不能被重新分配。 最佳答案
我注意到使用const和import在node.js应用程序中使用es6语法和Babel引用库之间的切换。首选方法是什么,使用const和import有什么区别?假设您可能在许多文件/组件中导入同一个库。常量constReact=require('react')导入importReactfrom'react'这是每个的定义,但我仍然不确定使用哪个。importimport语句用于导入从外部模块、另一个脚本等导出的函数、对象或原语。constconst声明创建一个对值的只读引用。这并不意味着它持有的值是不可变的,只是变量标识符不能被重新分配。 最佳答案
前言模块化开发有助于我们将代码进行拆分,便于开发和维护,但如果不清楚模块化规范,就会在开发时不知道该用require还是import,导出时该用export还是module.exports,所以我们必须搞清除它们的区别和事情的来龙去脉。本篇主要内容是CommonJS和ESModule规范。其它还有AMD、CMD、UMD规范,感兴趣的小伙伴可以自行了解一下。什么是前端模块化随着前端项目越做越大,功能越来越多,我们不能把所有代码写在一个js中,而是把代码按照不同的功能进行划分,但是代码越来越多,代码之间的引用嵌套越来越深,我们又不得不花费大量时间去管理和维护,如何提高代码的管理效率?就是通过模块化
CommonJS特点社区标准使用函数实现仅node环境支持动态依赖(需要代码运行后才能确定依赖,可以在各种代码里写)动态依赖是同步执行的(本质上就是个函数而已)原理://require函数的伪代码---通过代码可以看到this/exports/module.exports是一样的functionrequire(path){if(该模块有缓存吗){return缓存结果;}function_run(exports,require,module,__filename,__dirname){//模块代码会放到这里}varmodule={exports:{}}_run.call(module.expor