node下的two.js调用one.js出现无法编译问题 Cannot find module ‘c:

简介: node下的two.js调用one.js出现无法编译问题 Cannot find module ‘c:

由于自己经常在本地写一些 js 脚本进行文件处理等工作,常常会使用 import 语法引入模块。但是 Node 在默认情况下是不支持 import 和 export 的。

(function (exports, require, module, __filename, __dirname) { import fs from ‘fs’;

^^

SyntaxError: Unexpected identifier

at new Script (vm.js:79:7)

at createScript (vm.js:251:10)

这里我提供一个自己在本地调试 js 代码时常使用的方式:使用 babel-node 命令,来运行含有 import/export 语法的 js 代码。

  1. 安装 babel-node
    babel-node 命令并非独立安装,在该死的 Babel 7.x 以前,需要通过安装 babel-cli 包获得。而在更该死的 Babel 7.x 以后,babel 的模块被被拆分。因此需要安装 @babel/core @babel/node 两个包来获取。
    如果你希望 babel-node 命令在全局可用,使用 -g 参数会让你一劳永逸。
    babel 7.x 以前的写法
    $ npm i -g babel-cli

babel 7.x 以后的写法

$ npm i -g @babel/core @babel/node

2. 安装 presets 并配置 .babelrc 文件

仅单安装 babel-node 也没用,运行 js 文件后你会发现依然报错。这是因为 babel-node 对 import 语法默认也是关闭的,因此需要安装指定的 preset 并配置 .babelrc 文件来开启语法支持。

截止2019年1月,原有的 babel-preset-es2015 写法已经废弃,与之代替的是 babel-preset-env 或者 @babel/preset-env,目前以后者为推荐。(鬼知道 babel 还会不会再变…)

由于两个 preset 模块对应的属性不同,因此分介绍:

第一种 babel-preset-env 写法

$ npm i babel-preset-env --save-dev

复制代码.babelrc 文件配置

{
  "preset": [ "env" ]
}

复制代码第二种 @babel/preset-env 写法

$ npm i @babel/preset-env --save-dev

复制代码.babelrc 文件配置

{
  "presets": [ "@babel/preset-env" ]
}

复制代码3. 执行 babel-node

至此经过上述配置,再通过 babel-node 即可执行含有 import/export 等 es6 语法的 js 文件。

$ babel-node test.js

复制代码最后切记由于性能问题,babel-node 仅限于在本地调试时使用,上线生产环境的代码还是需要使用 babel 进行转换,再使用 node 运行。

目录
相关文章
|
Web App开发 JavaScript 前端开发
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念,包括事件驱动、单线程模型和模块系统;探讨其安装配置、核心模块使用、实战应用如搭建 Web 服务器、文件操作及实时通信;分析项目结构与开发流程,讨论其优势与挑战,并通过案例展示 Node.js 在实际项目中的应用,旨在帮助开发者更好地掌握这一强大工具。
712 1
|
JavaScript 前端开发 安全
【逆向】Python 调用 JS 代码实战:使用 pyexecjs 与 Node.js 无缝衔接
本文介绍了如何使用 Python 的轻量级库 `pyexecjs` 调用 JavaScript 代码,并结合 Node.js 实现完整的执行流程。内容涵盖环境搭建、基本使用、常见问题解决方案及爬虫逆向分析中的实战技巧,帮助开发者在 Python 中高效处理 JS 逻辑。
|
JavaScript
node环境之Error: Cannot find module ‘chalk’ 报错无法解决的问题—-网上说让你npm install chalk 基本是没有用的-优雅草央千澈解决方案
node环境之Error: Cannot find module ‘chalk’ 报错无法解决的问题—-网上说让你npm install chalk 基本是没有用的-优雅草央千澈解决方案
1368 13
node环境之Error: Cannot find module ‘chalk’ 报错无法解决的问题—-网上说让你npm install chalk 基本是没有用的-优雅草央千澈解决方案
|
存储 JavaScript NoSQL
Node.js新作《循序渐进Node.js企业级开发实践》简介
《循序渐进Node.js企业级开发实践》由清华大学出版社出版,基于Node.js 22.3.0编写,包含26个实战案例和43个上机练习,旨在帮助读者从基础到进阶全面掌握Node.js技术,适用于初学者、进阶开发者及全栈工程师。
482 9
|
JSON JavaScript 前端开发
使用JavaScript和Node.js构建简单的RESTful API
使用JavaScript和Node.js构建简单的RESTful API
|
JavaScript Unix Linux
nvm与node.js的安装指南
通过以上步骤,你可以在各种操作系统上成功安装NVM和Node.js,从而在不同的项目中灵活切换Node.js版本。这种灵活性对于管理不同项目的环境依赖而言是非常重要的。
4068 11
|
存储 JavaScript 搜索推荐
Node框架的安装和配置方法
安装 Node 框架是进行 Node 开发的第一步,通过正确的安装和配置,可以为后续的开发工作提供良好的基础。在安装过程中,需要仔细阅读相关文档和提示,遇到问题及时解决,以确保安装顺利完成。
1352 155
|
弹性计算 JavaScript 前端开发
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
Node.js 是一种高效的 JavaScript 运行环境,基于 Chrome V8 引擎,支持在服务器端运行 JavaScript 代码。本文介绍如何在阿里云上一键部署 Node.js 环境,无需繁琐配置,轻松上手。前提条件包括 ECS 实例运行中且操作系统为 CentOS、Ubuntu 等。功能特点为一键安装和稳定性好,支持常用 LTS 版本。安装步骤简单:登录阿里云控制台,选择扩展程序管理页面,安装 Node.js 扩展,选择实例和版本,等待创建完成并验证安装成功。通过阿里云的公共扩展,初学者和经验丰富的开发者都能快速进入开发状态,开启高效开发之旅。
|
资源调度 JavaScript 前端开发
前端开发必备!Node.js 18.x LTS保姆级安装教程(附国内镜像源配置)
本文详细介绍了Node.js的安装与配置流程,涵盖环境准备、版本选择(推荐LTS版v18.x)、安装步骤(路径设置、组件选择)、环境验证(命令测试、镜像加速)及常见问题解决方法。同时推荐开发工具链,如VS Code、Yarn等,并提供常用全局包安装指南,帮助开发者快速搭建高效稳定的JavaScript开发环境。内容基于官方正版软件,确保合规性与安全性。
16713 23