当前位置: 首页 > 知识库问答 >
问题:

NeutrinJS/vue项目:从根文件夹导入vue文件/模板

柳项明
2023-03-14

我想导入从根文件夹开始,而不是去几个文件夹下来。我该怎么做呢?

当我试图为我的主页导入一个留言簿(就像1999年一样)脚本时,我遇到了这个问题。

导入MyGuestbook从...MyGuestbook.vue编译。

导入MyGuestbook从'/src/组件/MyGuestbook.vue'没有。

从'@/components/MyGuestbook.vue'导入MyGuestbook'也不会。

GuestBookPage.vue

<template>
<div>
    <MyGuestbook />
</div>
</template>

<script>
import MyGuestbook from '../../components/MyGuestbook.vue'

export default {
  name: 'GuestbookPage',
  components: {
    MyGuestbook
  }
};
</script>

MyGuestbook.vue

<template>
  </div>
  </div>
</template>

<script src="non-editable-comments-v0.1.0.js"></script>
<script>
  window.safeComments('CommentTitle', 'CommentTargetID');

  export default {
    name: 'MyGuestbook'
  };
</script>

[更新]

我明白我需要使用webpack,但是我的项目使用中微子/vue(推荐用于项目类型)与webpack相结合。他们两个我都不熟悉。到目前为止,增加webpack.config.js没有奏效。

webpack.config.js

module.exports = {
  resolve: {
    extensions: [
      '.js', '.vue', '.json'
    ],
    alias: {
      '@': resolve('src'),
      '@root': resolve('.')
    }
  }
};

编辑也是如此

module.exports = {
  use: [
    '@neutrinojs/standardjs',
    [
      '@neutrinojs/vue',
      {
        html: {
          title: 'MySite'
        }
      }
    ],
    '@neutrinojs/jest',
    (neutrino) => {
      neutrino.config.resolve.extensions
        .add('.js')
        .add('.json')
        .add('.vue');

      neutrino.config.resolve.alias
      .set('@', 'src')
      .set('@root', '.');
    }
  ]
};

错误:

ERROR in ./node_modules/@neutrinojs/compile-loader/node_modules/babel-loader/lib?{"cacheDirectory":true,
"plugins":[["/home/folatt/Cloud/workspace/atom/Sites/MySite/node_modules/fast-async/plugin.js",
{"spec":true}],
"/home/folatt/Cloud/workspace/atom/Sites/MySite/node_modules/babel-plugin-syntax-dynamic-import/lib/index.js",
"/home/folatt/Cloud/workspace/atom/Sites/MySite/node_modules/babel-plugin-transform-object-rest-spread/lib/index.js"],
"presets":[["/home/folatt/Cloud/workspace/atom/Sites/MySite/node_modules/babel-preset-env/lib/index.js",
{"debug":false,"modules":false,
"useBuiltIns":true,"exclude":["transform-regenerator",
"transform-async-to-generator"],
"targets":{"browsers":[
"last 2 Chrome versions",
"last 2 Firefox versions",
"last 2 Edge versions",
"last 2 Opera versions",
"last 2 Safari versions",
"last 2 iOS versions"]}}]]}!.
/node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/docs/7.forum/GuestbookPage.vue
Module not found: Error: Can't resolve '@/components/YroGuestbook.vue' in '/home/folatt/Cloud/workspace/atom/Sites/MySite/src/docs/7.forum'
 @ ./node_modules/@neutrinojs/compile-loader/node_modules/babel-loader/lib?{"cacheDirectory":true,
"plugins":[["/home/folatt/Cloud/workspace/atom/Sites/MySite/node_modules/fast-async/plugin.js",
{"spec":true}],
"/home/folatt/Cloud/workspace/atom/Sites/MySite/node_modules/babel-plugin-syntax-dynamic-import/lib/index.js",
"/home/folatt/Cloud/workspace/atom/Sites/MySite/node_modules/babel-plugin-transform-object-rest-spread/lib/index.js"],
"presets":[["/home/folatt/Cloud/workspace/atom/Sites/MySite/node_modules/babel-preset-env/lib/index.js",
{"debug":false,"modules":false,"useBuiltIns":true,
"exclude":["transform-regenerator","transform-async-to-generator"],
"targets":{"browsers":["last 2 Chrome versions",
"last 2 Firefox versions",
"last 2 Edge versions",
"last 2 Opera versions",
"last 2 Safari versions",
"last 2 iOS versions"]}}]]}!.
/node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/docs/7.forum/GuestbookPage.vue 8:0-57
 @ ./src/docs/7.forum/GuestbookPage.vue
 @ ./src/router/index.js
 @ ./src/index.js
 @ multi ./node_modules/webpack-dev-server/client?http://localhost:5000 ./node_modules/@neutrinojs/web/node_modules/webpack/hot/dev-server.js ./src/index

共有1个答案

松英喆
2023-03-14

我错过了整个巴贝尔插件的事情。

yarn add babel-plugin-root-import -dev

. babelrc

{
  "plugins": [
    ["babel-plugin-root-import", {
      "rootPathSuffix": "src",
      "rootPathPrefix": "@"
    }]
  ]
}

我无法使alias resolves正常工作,但这似乎确实有效。

 类似资料:
  • 问题内容: 我想将子文件夹导入为模块。因此,每个子文件夹都包含一个。我的文件夹结构是这样的: 在我的主脚本中,我导入 在此工厂文件中,我包括以下子模块: 如果我调用我的foofactory会收到错误消息,则该python无法导入子模块foo1和foo2: 问题答案: 无需与您或此处混淆。 为了在包中正确使用绝对导入,您还应该包括“ root”包名,例如: 或者您可以使用相对导入:

  • 问题内容: 给定这样的目录结构 我如何使用Python的 相对进口 到进口的?通过将其添加到路径中,可以得到一个可行的解决方案,但这很丑陋。有没有一种方法可以在Python 2.7中简单地处理一个? 这是此问题的更复杂版本: 从父文件夹导入模块 问题答案: 正确的相对导入为: 但是,相对进口仅在一个包装中起作用。如果是软件包,则可以在此处使用相对导入。如果不是包,则不能。 因此,如果您在中运行脚本

  • 问题内容: 我正在运行Python 2.5。 这是我的文件夹树: (我还在每个文件夹中,为便于阅读,在此省略) 如何nib从模块内部导入life模块?我希望无需修补就可以做到。 注意:正在运行的主模块在ptdraft文件夹中。 问题答案: 看来问题与该模块位于父目录或类似目录中无关。 你需要将包含的目录添加到PYTHONPATH 你说过与你合作,这可能意味着你已将自身(而非其父项)添加到PYTHO

  • 问题内容: 我想使用“文件类”从项目文件夹中获取文件,我该怎么办? 问题答案: 嗯,有很多不同的方法来获取Java文件,但这是一般要点。 不要忘记,您至少需要将其包装在a 中,因为File是其中的一部分,这意味着它必须具有try-catch块。 不是要解决Ericson的问题,而是如果您使用的是实际的软件包,则除非明确使用文件的位置,否则文件的位置将有问题。相对路径与Packages混为一谈。 即

  • 问题内容: 我有以下文件夹结构。 我想从位于另一个Python文件中的导入一些功能 我试过了 和其他一些尝试,但到目前为止,我无法正确导入。我怎样才能做到这一点? 问题答案: 默认情况下,你不能这样做。导入文件时,Python仅搜索当前目录,入口点脚本运行所在的目录,并且包括诸如软件包安装目录之类的位置(实际上比这稍微复杂一点,但这涵盖了大多数情况) 。 但是,你可以在运行时添加到Python路径

  • 我想通过使用“文件类”从项目文件夹中获取文件,我如何做到这一点?