Cách thay đổi số cổng trong dự án vue-cli


Câu trả lời:


20

Cổng cho mẫu webpack Vue-cli được tìm thấy trong thư mục gốc ứng dụng của bạn myApp/config/index.js.

Tất cả những gì bạn phải làm là sửa đổi portgiá trị bên trong devkhối:

 dev: {
    proxyTable: {},
    env: require('./dev.env'),
    port: 4545,
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',
    cssSourceMap: false
  }

Giờ đây, bạn có thể truy cập ứng dụng của mình với localhost:4545

Ngoài ra nếu bạn có .envtệp tốt hơn để đặt nó từ đó


18
Trong phiên bản vuejs mới nhất. Tệp không còn được sử dụng nữa, thay vào đó bằng: <your_project_root> /vue.config.js.
Jianwu Chen

3
Tệp myApp/config/index.jskhông tồn tại!
exhuma, 02/09/18

3
Vue CLI 3 sử dụng vue.config.js tại gốc dự án. Nó phải được tạo IIRC theo cách thủ công.
Ege Ersoz

1
không có vue.config.js ở đó
Geomorillo

19
"scripts": { "serve": "vue-cli-service serve --port 80" },
Sudhir K Gupta

122

Nếu bạn đang sử dụng vue-cli3.x, bạn có thể chỉ cần chuyển cổng vào npmlệnh như sau:

npm run serve -- --port 3000

Sau đó ghé thăm http://localhost:3000/


7
Bạn đã tiết kiệm cho tôi thời gian quý báu, vì tài liệu đầu tiên --không được viết trong tài liệu: cli.vuejs.org/guide/cli-service.html#using-the-binary . Tôi đang gõ npm run serve --port 3000có vẻ hợp lý với tôi, nhưng tôi gặp lỗi ... Đồng ý!
toni07,

3
Đó là bởi vì cái đầu tiên --thoát khỏi các tham số được cho npm run servekhông cho vue-cli-service. Nếu bạn chỉnh sửa package.jsonservelệnh trực tiếp, bạn nhập nó như được hiển thị trong tài liệu:"serve": "vue-cli-service serve --port 3000",
MatsLindh 13/09 '19

93

Đến bữa tiệc muộn, nhưng tôi nghĩ sẽ rất hữu ích nếu tổng hợp tất cả các câu trả lời này thành một phác thảo tất cả các lựa chọn.

Được phân tách trong Vue CLI v2 (mẫu webpack) và Vue CLI v3, được sắp xếp theo thứ tự ưu tiên (cao đến thấp).

Vue CLI v3

  • package.json: Thêm tùy chọn cổng vào servetập lệnh:scripts.serve=vue-cli-service serve --port 4000
  • CLI Tùy chọn --portđể npm run serve, ví dụ npm run serve -- --port 3000. Lưu ý rằng --, điều này làm cho tùy chọn cổng chuyển sang tập lệnh npm thay vì cho chính npm. Vì ít nhất v3.4.1, nó phải là vd vue-cli-service serve --port 3000.
  • Biến môi trường $PORT, ví dụ:PORT=3000 npm run serve
  • .env Các tệp, env cụ thể hơn sẽ ghi đè lên những cái ít cụ thể hơn, ví dụ: PORT=3242
  • vue.config.js, devServer.port vddevServer: { port: 9999 }

Người giới thiệu:

Vue CLI v2 (không dùng nữa)

  • Biến môi trường $PORT, ví dụ:PORT=3000 npm run dev
  • /config/index.js: dev.port

Người giới thiệu:


3
Có vẻ như điều này đã thay đổi một chút trong vue cli mới nhất (sử dụng 3.4.1), đây là dòng "phục vụ" của tôi trong package.json : "serve": "vue-cli-service serve --port 4000",. Hoạt động tuyệt vời!
RoccoB

@RoccoB Cảm ơn, tôi đã xác minh nó và thêm nó vào câu trả lời.
wwerner

Các câu trả lời ở trên dường như không hoạt động trong phiên bản v3 vào ngày này. Tôi đã thử tùy chọn .env, package.json, vue.config.js và tùy chọn lệnh CLI nhưng tất cả đều bị bỏ qua. Các tài liệu tập tin cấu hình nói "Một số giá trị thích host, porthttpscó thể ghi đè bằng cờ dòng lệnh." cli.vuejs.org/config/#devserver Tôi có thiếu thứ gì không? Còn ai gặp vấn đề không?
Ryan

2
@Ryan - Điều này đã được báo cáo ngày hôm qua trong Các vấn đề về kho lưu trữ VueJS CLI: github.com/vuejs/vue-cli/issues/4452 Người ta nói rằng hãy cài đặt portfinder ( github.com/http-party/node-portfinder ) vì có một phá vỡ thay đổi đã xảy ra với điều đó.
Angelo

38

Tại thời điểm viết câu trả lời này (ngày 5 tháng 5 năm 2018), vue-clicấu hình của nó được lưu trữ tại <your_project_root>/vue.config.js. Để thay đổi cổng, hãy xem bên dưới:

// vue.config.js
module.exports = {
  // ...
  devServer: {
    open: process.platform === 'darwin',
    host: '0.0.0.0',
    port: 8080, // CHANGE YOUR PORT HERE!
    https: false,
    hotOnly: false,
  },
  // ...
}

vue.config.jsBạn có thể tham khảo đầy đủ tại đây: https://cli.vuejs.org/config/#global-cli-config

Lưu ý rằng như đã nêu trong tài liệu, “Tất cả các tùy chọn cho webpack-dev-server” ( https://webpack.js.org/configuration/dev-server/ ) đều có sẵn trong devServerphần này.


1
@srf: Đã chỉnh sửa câu trả lời. Cảm ơn vì đã chỉ ra liên kết bị hỏng.
TomyJaya

Chắc hẳn là một \. hiệu lực thi hành trên trang web đó :)
killjoy

12

Một tùy chọn khác nếu bạn đang sử dụng vue cli 3 là sử dụng tệp cấu hình. Tạo một vue.config.jsở cùng cấp với của bạn package.jsonvà đặt một cấu hình như vậy:

module.exports = {
  devServer: {
    port: 3000
  }
}

Định cấu hình nó bằng script:

npm run serve --port 3000

hoạt động tốt nhưng nếu bạn có nhiều tùy chọn cấu hình hơn, tôi muốn làm điều đó trong một tệp cấu hình. Bạn có thể tìm thêm thông tin trong tài liệu .


1
Tôi thích câu trả lời này vì nó cho thấy rằng vue.config.js có thể được sử dụng để chỉ thay đổi cổng và giữ nguyên mọi thứ khác, đó là những gì đã được hỏi ban đầu.
Twisted

9

Cách tốt nhất là cập nhật lệnh script phục vụ trong package.jsontệp của bạn . Chỉ cần nối --port 3000như vậy:

"scripts": {
  "serve": "vue-cli-service serve --port 3000",
  "build": "vue-cli-service build",
  "inspect": "vue-cli-service inspect",
  "lint": "vue-cli-service lint"
},

8

Trong webpack.config.js:

module.exports = {
  ......
  devServer: {
    historyApiFallback: true,
    port: 8081,   // you can change the port there
    noInfo: true,
    overlay: true
  },
  ......
}

Bạn có thể thay đổi cổng trong module.exports-> devServer->port .

Sau đó, bạn sắp xếp lại npm run dev. Bạn có thể nhận được điều đó.


8

Nếu bạn muốn thay đổi cổng localhost, bạn có thể thay đổi thẻ script trong package.json :

 "scripts": {
    "serve": "vue-cli-service serve --port 3000",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  },

Cảm ơn bạn rất nhiều :-)
Adam Orlov

5

Một cách tiếp cận thay thế với vue-cliphiên bản 3 là thêm một .envtệp trong thư mục gốc của dự án (cùng bên package.json) với nội dung:

PORT=3000

Đang chạy npm run servesẽ cho biết ứng dụng đang chạy trên cổng 3000.


4

Có rất nhiều câu trả lời ở đây thay đổi theo phiên bản, vì vậy tôi nghĩ rằng tôi sẽ xác nhận và giải thích rõ ràng câu trả lời của Julien Le Coupanec ở trên từ tháng 10 năm 2018 khi sử dụng Vue CLI . Trong phiên bản gần đây nhất của Vue.js kể từ bài đăng này - vue@2.6.10 - các bước được nêu bên dưới có ý nghĩa nhất đối với tôi sau khi xem qua một số câu trả lời trong vô số câu trả lời trong bài đăng này. Các tài liệu Vue.js tài liệu tham khảo mảnh của câu đố này, nhưng không phải là khá rõ ràng.

  1. Mở package.jsontệp trong thư mục gốc của dự án Vue.js.
  2. Tìm kiếm "cổng" trong package.jsontệp.
  3. Khi tìm thấy tham chiếu sau đến "cổng", hãy chỉnh sửa servephần tử tập lệnh để phản ánh cổng mong muốn, sử dụng cú pháp tương tự như được hiển thị bên dưới:

    "scripts": {
      "serve": "vue-cli-service serve --port 8000",
      "build": "vue-cli-service build",
      "lint": "vue-cli-service lint"
    }
    
  4. Đảm bảo khởi động lại npmmáy chủ để tránh mất trí không cần thiết.

Các chương trình tài liệu một cách hiệu quả có thể nhận được kết quả tương tự bằng cách thêm --port 8080vào cuối của các npm run servelệnh như vậy: npm run serve --port 8080. Tôi thích chỉnh sửa package.jsontrực tiếp để tránh phải nhập thêm, nhưng chỉnh sửa npm run serve --port 1234nội dòng có thể hữu ích đối với một số người.


1

Thêm PORTenvariable vào servescript của bạn trong package.json:

"serve": "PORT=4767 vue-cli-service serve",

1

Ôi chúa ơi! Nó không phức tạp lắm, với những câu trả lời này cũng hoạt động. Tuy nhiên, các câu trả lời khác cho câu hỏi này cũng hoạt động tốt.

Nếu bạn thực sự muốn sử dụng vue-cli-servicevà nếu bạn muốn có cài đặt cổng trong package.jsontệp của mình , mà lệnh 'vue create <app-name>' về cơ bản tạo, bạn có thể sử dụng cấu hình sau:--port 3000 . Vì vậy, toàn bộ cấu hình của tập lệnh của bạn sẽ như thế này:

...
"scripts": {
"serve": "vue-cli-service serve --port 3000",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
},
...

Tôi đang sử dụng @vue/cli 4.3.1 (vue --version)trên thiết bị macOS.

Tôi cũng đã thêm tham chiếu vue-cli-service: https://cli.vuejs.org/guide/cli-service.html


0

Trong dự án vue của tôi trong mã studio trực quan, tôi phải đặt điều này trong /config/index.js . Thay đổi nó trong:

module.exports = {
    dev: {
          // Paths
          assetsSubDirectory: 'static',
          assetsPublicPath: '/',
          proxyTable: {},

          host: 'localhost', // can be overwritten by process.env.HOST
          port: 8090, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
          autoOpenBrowser: false,
          errorOverlay: true,
          notifyOnErrors: true,
          poll: false    
         }
}

0

Đi tới node_modules/@vue/cli-service/lib/options.js
Ở dưới cùng bên trong "devServer" bỏ chặn các mã
Bây giờ, hãy cung cấp số cổng mong muốn của bạn trong "cổng" :)

devServer: {
   open: process.platform === 'darwin',
   host: '0.0.0.0',
   port: 3000,  // default port 8080
   https: false,
   hotOnly: false,
   proxy: null, // string | Object
   before: app => {}
}

3
chuyển đến node_modules / @ vue / cli-service ...? Điều đó có bị ghi đè lên bản cập nhật npm không?
Joeri
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.