相关疑难解决方法(0)

使用Webpack在vue.js项目中使用at('@')登录路径进行ES6导入

我正在开始一个新的vue.js项目,所以我使用vue-cli工具来构建一个新的webpack项目(即vue init webpack).

当我浏览生成的文件时,我注意到文件中有以下导入src/router/index.js:

import Vue from 'vue'
import Router from 'vue-router'
import Hello from '@/components/Hello' // <- this one is what my qusestion is about

Vue.use(Router)

export default new Router({
    routes: [
        {
            path: '/',
            name: 'Hello',
            component: Hello
        }
    ]
})
Run Code Online (Sandbox Code Playgroud)

我以前没见过@路径中的at符号().我怀疑它允许相对路径(也许?)但我想确定我理解它真正的作用.

我尝试在网上搜索,但无法找到解释(因为搜索"at sign"或使用文字字符@没有帮助作为搜索条件).

@在这条道路上做了什么(链接到文档会很棒)这是一个es6的事情?一个webpack的东西?一个vue-loader的东西?

UPDATE

感谢Felix Kling指出我关于同一个问题的另一个重复的stackoverflow问题/答案.

虽然对其他stackoverflow帖子的评论不是这个问题的确切答案(在我的情况下它不是一个babel插件)但它确实指出了我找到它的正确方向.

在vue-cli为你创建的脚手架中,基本webpack配置的一部分为.vue文件设置了一个别名:

项目中的别名位置

这有意义,因为它为您提供了来自src文件的相对路径,并且它删除.vue了导入路径末尾(通常需要)的要求.

谢谢您的帮助!

javascript ecmascript-6 webpack vue.js

211
推荐指数
3
解决办法
5万
查看次数

在节点模块名称中使用@符号

我正在看一些同事写的代码,她@在require语句中使用了这个符号.这是其中一个文件的第一行:

var restServer = require('@company/config')
Run Code Online (Sandbox Code Playgroud)

当我尝试运行此代码时,出现错误:

Error: Cannot find module '@company/config'

我坦率地预计,在我的目录中没有任何东西看起来像需要识别!看起来这里有一些魔法,我讨厌.

我可以猜到的是,这是一些我没有接触到的一些模糊的npm或Node技巧,或者可能是我没有得到的其他一些黑暗的配置艺术.任何信息都会受到赞赏,即使这只是对@需要如何工作的解释.

其他想法:厨师涉及到整个事情的某个地方,所以这可能是相关的.

更新:99%肯定这是一个问题,npm config在这一点上的工作方式,但仍然不确定如何修复它.

Update2基于我发现的一些东西:

Dereks-MacBook-Pro:project-dir derekjanni$ npm config set //registry.npmjs.org/:authtoken $SECRET_TOKEN

Dereks-MacBook-Pro:project-dir derekjanni$ npm install
npm ERR! Darwin 15.0.0
npm ERR! argv "/usr/local/Cellar/node/5.5.0/bin/node" "/usr/local/bin/npm" "install"
npm ERR! node v5.5.0
npm ERR! npm  v3.5.3
npm ERR! code E404
npm ERR! 404 Not found : @company/config
npm ERR! 404  '@company/config' is not in the npm registry.
Run Code Online (Sandbox Code Playgroud)

javascript node.js chef-infra npm

84
推荐指数
5
解决办法
2万
查看次数

将别名@导入重构为相对路径

在使用Webpack,TypeScript或其他工具转换ES模块导入的模块化环境中,使用路径别名,常见的约定是@ forsrc

对我而言,使用别名绝对路径转换项目是一个常见的问题:

src / foo / bar / index.js

import baz from '@/baz';
Run Code Online (Sandbox Code Playgroud)

相对路径:

src / foo / bar / index.js

import baz from '../../baz';
Run Code Online (Sandbox Code Playgroud)

例如,使用别名的项目需要与不使用别名的另一个项目合并,由于样式指南或其他原因,不能将后者配置为使用别名。

简单的搜索和替换无法解决此问题,并且手动修复导入路径非常繁琐且容易出错。我希望原始的JavaScript / TypeScript代码库在其他方面保持不变,因此可能无法选择使用编译器进行转换。

我想用我选择的IDE(Jetbrains IDEA / Webstorm / Phpstorm)实现这种重构,但可以接受任何其他IDE(VS Code)或纯Node.js的解决方案。

如何做到这一点?

javascript refactoring jetbrains-ide visual-studio-code es6-modules

10
推荐指数
3
解决办法
552
查看次数