<strike id="cy2gs"><menu id="cy2gs"></menu></strike>
  • <del id="cy2gs"><dfn id="cy2gs"></dfn></del>
  • 解決nodejs koa express以及vue,nuxt項目中使用別名映射vscode不提示的問題,兼容webpack的@和best-require 的:xxx 別名映射

    2019-11-16    seo達人

    nodejs中使用別名映射,兼容webpack的@和best-require 的:xxx 別名映射

    項目地址: https://github.com/langyuxiansheng/biu-server-admin



    寫在前面

    研究了很久,找了很多資料發現都沒有,只好自己去想辦法,查資料.才弄好的,凌晨發布的,轉載請注明出處.

    在做nodejs項目開發的時候,你是不是也在為

    require('./posts');

    require('./controllers/posts');

    require('../controllers/posts');

    require('../../controllers/posts');

    require('../../../apis/controllers/posts');



    或者



    require(ROOT_PATH + '/application/apis/controllers/posts');

    // other require()...

    require(ROOT_PATH + '/application/apis/controllers/users');

    require(ROOT_PATH + '/application/apis/controllers/products');

    require(ROOT_PATH + '/application/apis/services/rest');

    require(ROOT_PATH + '/application/apis/config');



    這樣的寫法而困擾;



    那看完這篇文章,從此之后就可以告別這個煩惱了;



    感謝一下 best-require 這個模塊包的作者,不然還需要自己去寫這個

    npmjs 鏈接 https://www.npmjs.com/package/best-require

    github 鏈接 https://github.com/yuezhihan/best-require



    不廢話了,進入正題 往下看:

    1. 安裝庫 best-require 進行別名映射





      npm i best-require --save


    2. 映射別名. 實例在本項目中 server/index.js 中





      const path = require('path');

      const ROOT_PATH = process.cwd();

      const SRC_PATH = path.join(ROOT_PATH, /server/src);

      console.log(ROOT_PATH, SRC_PATH);

      //映射目錄別名

      require('best-require')(ROOT_PATH, {

          root: ROOT_PATH,

          src: SRC_PATH,

          controllers: path.join(SRC_PATH, '/controllers'),

          models: path.join(SRC_PATH, '/models'),

          routes: path.join(SRC_PATH, '/routes'),

          crawlers: path.join(SRC_PATH, '/crawlers'),

          services: path.join(SRC_PATH, '/services'),

          middleware: path.join(SRC_PATH, '/middleware'),

          lib: path.join(SRC_PATH, '/lib'),

          config: path.join(SRC_PATH, '/config'),

          logs: path.join(SRC_PATH, '/logs')

      });



      //運行服務

      require('./src/bin/Server').run();


    3. 設置 jsconfig.json





      {

          "compilerOptions": {

              "allowSyntheticDefaultImports": true,

              "baseUrl": "./",

              "paths": {

                  "@/": ["client/"],

                  ":root/": [""],

                  ":config/": ["server/src/config/"],

                  ":lib/": ["server/src/lib/"],

                  ":services/": ["server/src/services/"],

                  ":controllers/":["server/src/controllers/"],

                  ":models/": ["server/src/models/"],

                  ":routes/": ["server/src/routes/"],

                  ":crawlers/": ["server/src/crawlers/"],

                  ":middleware/": ["server/src/middleware/"],

                  ":logs/": ["server/src/logs/"]

              }

          },

          "include": ["server/*/","client/*/"],

          "exclude": [

              "node_modules",

              "nuxt-dist",

              "server-dist"

          ]

      }


    4. vscode要安裝 path-intellisense 插件 并在設置中配置setting.json



      vscode 中的設置,setting.json



      workspaceRoot 是當前的工作空間,就是當前編輯器打開的目錄.



      配置如下





      {

          "path-intellisense.mappings": {

              "@": "${workspaceRoot}/client",

              ":root": "${workspaceRoot}",

              ":lib": "${workspaceRoot}/server/src/lib",

              ":controllers": "${workspaceRoot}/server/src/controllers",

              ":models": "${workspaceRoot}/server/src/models",

              ":routes": "${workspaceRoot}/server/src/routes",

              ":crawlers": "${workspaceRoot}/server/src/crawlers",

              ":services": "${workspaceRoot}/server/src/services",

              ":middleware": "${workspaceRoot}/server/src/middleware",

              ":config": "${workspaceRoot}/server/src/config",

              ":logs": "${workspaceRoot}/server/src/logs",

          }

      }


    5. 重啟vscode,試試看吧!

      作者的目錄結構









      vue中使用







      后續更新

      nodejs中使用sequelize的model映射,這樣就解決了沒得提示的煩惱了,讓你的效率提升2個檔次

      寫在后面

      如果你遇到難題或者有疑問,有好的建議請留言反饋.

      這種提示以及Ctrl + 鼠標左鍵的跳轉,只針對 .js 的文件, .vue的沒試過.這個也只是為了解決 js方法映射后沒提示的問題.


    日歷

    鏈接

    個人資料

    藍藍設計的小編 http://m.skdbbs.com

    存檔

    主站蜘蛛池模板: 自拍偷自拍亚洲精品情侣| 亚洲精品自产拍在线观看| 久久久久久国产精品无码下载| 日韩国产成人精品视频| 好湿好大硬得深一点动态图91精品福利一区二区 | 大伊香蕉精品一区视频在线 | 亚洲精品高清视频| 国产日产韩国精品视频| 亚洲一区精品伊人久久伊人| 精品人妻一区二区三区毛片| 91精品国产高清久久久久久国产嫩草| 国产精品美脚玉足脚交欧美| 日产精品一线二线三线芒果| 亚洲综合欧美精品一区二区 | 久久久WWW成人免费精品| 亚洲一二成人精品区| 国产精品宾馆在线精品酒店 | 国产精品内射后入合集| 人妻少妇乱子伦精品| 亚洲精品国产V片在线观看| 国产精品亚洲二区在线观看| 99久久精品免费国产大片| 精品久久久久久中文字幕| 99久久精品毛片免费播放| 国产乱码精品一品二品| 久久精品国产亚洲精品2020| 久久香蕉超碰97国产精品| 无码精品久久久天天影视| 午夜精品久久久久久中宇| 亚洲精品成人片在线观看精品字幕 | 国产精品99精品视频网站| 亚洲午夜精品一区二区| 成人一区二区三区精品| 9久热这里只有精品| 国产成人精品免费大全| 国产国产成人久久精品| 国产精品99久久精品爆乳| 精品国产欧美一区二区三区成人 | 国语自产精品视频在线观看| 久久精品无码av| 日本欧美国产精品第一页久久|