【问题标题】:Error when import a node_module on svelte在 svelte 上导入 node_module 时出错
【发布时间】:2021-02-09 14:38:51
【问题描述】:

我必须创建一个要在我的应用程序上使用的模块,但是当我在我的主要项目中导入它时,我遇到了这个错误

Error: Cannot find module '.../node_modules/Table/dist/index.js'. Please verify that the package.json has a valid "main" entry

我没有文件夹 dist/index.js,在我遵循的指南中我没有看到有必要制作包,在另一个项目中我也没有这些问题。我的node版本是v12.16.2


我更新了我的汇总以使用 npm run dev 构建

这是我的新汇总

import svelte from 'rollup-plugin-svelte';
import resolve from 'rollup-plugin-node-resolve';
    
const pkg = require('./package.json');
    
export default {
        input: 'src/Table.svelte',
        output: {
            file: `dist/bundle.js`,
            format: "iife"
        },
        plugins: [
            svelte(),
            resolve({ preferBuiltins: true, mainFields: ['browser'] })
        ],
        external: ['uuid', 'object-exporter']
};

但我又遇到了这个错误

internal/modules/cjs/loader.js:327
      throw err;
      ^

Error: Cannot find module '/../../node_modules/Table/dist/index.js'. Please verify that the package.json has a valid "main" entry

【问题讨论】:

  • 你是如何导入模块的?
  • 从“表”导入表
  • 似乎您在package.json 中定义了main,例如"main": "dist/index.js",但dist/index.js 不存在。您是否忘记在使用之前构建您的包?
  • 我更新了第一篇文章以显示新的错误和新的汇总
  • 您使用的是全局安装的 node.js 还是项目级引用?

标签: javascript svelte rollup sapper


【解决方案1】:

您的汇总配置在 dist/bundle.js 中构建您的包:

output: {
    file: `dist/bundle.js`,
    format: "iife"
},

但你可能在package.json中定义了:

  "main": "dist/index.js",

但是dist/index.js 没有退出。只需将其替换为"main": "dist/bundle.js"

【讨论】:

  • 我必须把“main”放在哪里:“dist/bundle.js”?
  • package.json 文件中的@fr33js。
  • 我已修复,现在告诉我:uuid is not defined 这是我的 node_module 上使用的库
  • @fr33js 很好,但这不是原来的问题 :) 如果它解决了你原来的问题,请为这个问题和validate 这个问题打开一个新问题。
猜你喜欢
  • 2021-02-17
  • 2022-12-18
  • 1970-01-01
  • 2020-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多