nodejs使用简单总结

一.node 的path模块中 path.resolve()和path.join()的区别
1.引入path模块 const path=require('path')
2.将路径片段使用特定的分隔符(window:\)连接起来形成路径,并规范化生成的路径
  path.join(__dirname,'/img/so') 
3.把一个路径或路径片段的序列解析为一个绝对路径。相当于执行cd操作。
  path.resolve(__dirname,'/img/so')
二.nodejs中的import 和 require 
1.require()
Commonjs规范 使用require 引入模块 使用module.exports导出接口
module.exports后面的内容是什么,require的结果就是什么,对象、数字、字符串、函数……
再把require的结果赋值给某个变量
仅仅把它当做一个node内置的全局函数来使用
node里的require是node的一个模块,不是一个标准
2.import
必须放在文件开头,而且使用格式也是确定的,不容置疑
es6语法
总结:我们在node中使用babel支持ES6,也仅仅是将ES6转码为ES5再执行,import语法会被转码为require。
这也是为什么在模块导出时使用 module.exports,在引入模块时使用import仍然起效,因为本质上,import会被转码为require去执行。

问:import 'bootstrap' import bootstrap from 'bootstrap' 有何不同

ES6的import语法暂时不被nodejs支持,所以此处import都是由Webpack实现的
直接引入import xxx.js或者import xxx.css会像添加<script>和<link>标签一样注入到全局中去,所以是全局可用的
import xxx直接导入整个模块,而import xx from xxx导入默认导出项,并给默认导出项一个具体名字
import xxx 模块仅为副作用(中性词,无贬义含义)而导入,而不导入模块中的任何内容。 这将运行模块中的全局代码, 但实际上不导入任何值。

问:import 'bootstrap' 可全局生效 import $ from 'jquery'只在当前import 的组件生效?
import 'jquery'或者import $ from 'jquery'不能直接在Vue全局使用,是因为组件模块化,import进去的模块,只能在写了import的那个文件里可用
而import 'bootstrap'直接引入是可用的,这是因为jquery和bootstrap的引入的内容不同:
jquery引入的东西,是通过export导出的类,也就是说,其实引入的是一个叫jQuery或者简写成$的类
而bootstrap,引入的东西,是CSS样式文件和JS代码文件,没有导出任何模块。在Vue项目里,直接import xxx.css和直接import xxx.js可以起到和一般网页中<link href="xxx.css">或<script src="xxx.js">标签相同的效果,而且这样导进去的CSS和JS是全局的,也就是说,对于bootstrap,导入的东西不是模块通过export(module.exports)暴露出来的数据,而是一整个CSS和JS文件,所以它是全局可用的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值