繁体   English   中英

使用 babel 转换我的 JS 代码后出现“找不到模块错误”。(即使文件转换良好,仍然有问题)

[英]'Cannot find module error' after I use babel to convert my JS code.(still got a problem even after files are converted well)

所以我尝试使用 Babel 来转换我的代码,以便我可以按节点运行它。 package.json构建是这样的,

"build": "babel ./public/src -d ./public/lib -w"

当我执行npm run build

PS C:\users\leepc\babel\public> npm run build

> babel@1.0.0 build C:\users\leepc\babel
> babel ./public/src -d ./public/lib -w

public\src\blogpost.js -> public\lib\blogpost.js
public\src\main.js -> public\lib\main.js
public\src\publication.js -> public\lib\publication.js

它工作正常,并准确地向我展示了我想要的东西。 我的.babelrc预设是es2015我运行我的main.js代码,这发生了。

PS C:\users\leepc\babel\public\lib> node main.js
internal/modules/cjs/loader.js:984
  throw err;
  ^
    at Function.Module._load 
(internal/modules/cjs/loader.js:863:27) 
    at Module.require 
(internal/modules/cjs/loader.js:1043:19)       
    at require (internal/modules/cjs/helpers.js:77:18)
    at Object.<anonymous> 
(C:\users\leepc\babel\public\lib\main.js:3:17)       
    at Module._compile 
(internal/modules/cjs/loader.js:1157:30)      17)       
    at Object.Module._extensions..js 
(internal/modules/cjs/loader.js:1177:     
10)                                                                            
    at Module.load (internal/modules/cjs/loader.js:1001:32)                    
    at Function.Module._load 
(internal/modules/cjs/loader.js:900:14)           
    at Function.executeUserEntryPoint [as runMain] 
(internal/modules/run_m     
ain.js:74:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [ 
'C:\\users\\leepc\\babel\\public\\lib\\main.js' ]  
}

这是 img 中的文件和文件夹列表

我的代码覆盖得很好,但它仍然有一些模块问题。 我该如何解决这个问题? 抱歉,这是我第一次在本网站上发布问题,如果我错过了一些信息,请告诉我。

编辑:

这是.babelrc

{
    "presets": ["es2015"]
  }

好吧,事实证明,我应该结合上面的两个答案。

首先,我必须检查我的导入插件是对还是错。 所以我只是重新安装了它。

npm install babel-plugin-import --save-dev

确保不要忘记放置插件选项。 在我的情况下,我在 .babelrc 中使用它

{
    "presets": ["es2015"],
    "plugins": [["import", { "libraryName": "antd" }]]
}

这个"plugins": [["import", { "libraryName": "antd" }]行意味着 import js 模块化。

还有接下来的事情,我必须使导入路径更正。

import { create as newBlogPost } from "blogpost.js"; 

将此更改为

import { create as newBlogPost } from "./blogpost.js"; 

通过这样做,现在我可以获得迄今为止我想要的结果。

PS C:\Users\leePC\babel\public\lib> node main.js

    Title: For and against let 
    By: Kyle Simpson 
    October 27, 2014

所以主要是,1.检查我是否错过了一些插件或包(在我的情况下,我忘记了导入包)2.确保检查你的导入路径

谢谢你们的帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM