刚开始用node.js做一些与前端交互的脚本就遇到了问题,是关于CommonJS文件与ES6模块转换的冲突。
以下是我的node.js 和 对应node.js自动安装的npm版本信息
我在导入axios包的时候使用了以下的import语句
结果就出现了以下的bug
我在网上找了很多的资料,总结一下原因,大概就是自从ES6发布以后,require导入模块语句渐渐取代了原先使用CommonJS 和 AMD两种模块加载规范, 前者用于服务器,后者用于浏览器(按我的理解就是后端和前端,AMD是为了解决客户端加载页面模块的速度取决于服务端的同步问题而产生的异步通信规范),虽然node.js现在大部分都已经能通过一些手段同时支持import和require语句,但是那些例如babel、node --experimental-modules XX.mjs都没能帮我真正解决问题(也可能是我操作的问题)
最后我发现其实不用那么复杂,只要把那句import语句换成require然后赋值给const常量即可解决问题。
const axios = require('npm/node_modules/axios');
在终端运行一下
终于成功了。。。。。。。就这个bug我找了三个小时 ,有种柳暗花明又一村的感觉啊害
刚开始用node.js做一些与前端交互的脚本就遇到了问题,是关于CommonJS文件与ES6模块转换的冲突。 以下是我的node.js 和 对应node.js自动安装的npm版本信息 我在导入axios包的时候使用了以下的语句...
r path → const path =
require
( 'path' )
r . . / setup → const setup =
require
( '../setup' )
r path . join → const join =
require
( 'path' ) . join
r React → const React =
require
( 'react' )
v path → var path =
require
( 'path' )
i path →
import
path from 'path'
i path . join →
import
{ join } from 'path'
2.7 前后端共用模块
谈论了许多后端模块的具体实现之后,现在我们围绕CommonJS规范再次回到前端模块上。
JavaScript
在Node出现之后,比别的编程语言多了一项优势,那就是一些模块可以在前后端实现共用,这是因为很多API在各个宿主环境下都提供。但是在实际情况下,前后端的环境是略有差别的。
2.7.1模块的侧重点
前后端...
import
'index.css' //在node_modules中找 index.css文件
import
'./index.css' //在当前根目录去找index.css文件
两个写法 完全不同,真的低级错误。同级目录引入index.css不能省略’./’
在新搭建的基于
node.js
的express框架时,不能直接
使用
import
/export,否则会报错如下:
SyntaxError: Cannot use
import
statement outside a module
这是由于目前NodeJs还不支持
import
/export,所以要安装babel依赖
(1)安装babel依赖
npm install babel-register babel-preset-env -D
(2)修改package.json
将node ./bin/w..
使用
require
()或ES / TypeScript
import
语句
导入包:
// CommonJS
const KeyCode =
require
( 'keycode-js' ) ;
// ES2015+
import
* as KeyCode from 'keycode-js' ;
// TypeScript
import
* as KeyCode from 'keycode-js' ;
//
Import
individual constants
好的,关于
Node.js
中path的
使用
,我可以回答您的问题。
path是
Node.js
中的一个内置模块,用于处理文件路径的字符串。它提供了一些方法来处理路径,包括拼接、解析、规范化等操作。下面是一些path常用的方法:
1. path.join([...paths]):将多个路径拼接为一个路径,返回拼接后的路径字符串。
2. path.resolve([...paths]):将相对路径解析为绝对路径,返回绝对路径字符串。
3. path.basename(path[, ext]):返回路径中的最后一部分,可以指定文件扩展名,如果省略扩展名,则返回不带扩展名的文件名。
4. path.dirname(path):返回路径中的目录名。
5. path.extname(path):返回路径中的文件扩展名。
除了这些常用的方法外,path模块还提供了其他一些方法,可以根据实际需求
使用
。
使用
path模块时,需要先引入该模块:
```
javascript
const path =
require
('path');
然后就可以
使用
path提供的方法来处理文件路径了。例如:
```
javascript
const filePath = '/usr/local/bin/node';
const dirName = path.dirname(filePath); // 返回 '/usr/local/bin'
const baseName = path.basename(filePath); // 返回 'node'
const extName = path.extname(filePath); // 返回 ''
const fullPath = path.resolve(filePath); // 返回 '/usr/local/bin/node'
希望这个回答能够帮助您。