我想知道是否有可能在我的客户端代码中包括npm依赖项,但仅限于开发中。
我有一些我只想在开发中运行的API模拟代码:
// src/main.js
import Vue from 'vue'
import App from './App.vue'
import { Server } from "miragejs";
Vue.config.productionTip = false
if (process.env.NODE_ENV === 'development') {
new Server()
}
new Vue({
render: h => h(App),
}).$mount('#app')
我希望npm依赖项miragejs
可以从生产版本以及开发模块中的代码中摆脱出来。
这可能吗?或者,是否有一种更惯用的方式在某些环境中仅包含某些npm资产?
答案 0 :(得分:2)
下拉至您的vue.config.js
文件(类似于webpack.config.js
!)并覆盖部分配置。您可以搞乱加载程序,也可以在一开始合并一些文件。
您有两个选择:chainWebpack
或configureWebpack
(如果为process.env.NODE_ENV !== 'PRODUCTION'
)
configureWebpack
接受对象文字。作为初学者,我觉得更简单。chainWebpack
是一个返回修改后的配置的函数。它具有相当复杂的API (here) vue-cli docs for both of those options
// vue.config.js
module.exports = {
// sometimes I just require my webpack files here...
// require('./webpack.config.js')
// There are some webpack config merge plugins available, I don't remember the names of them.
configureWebpack: process.env.NODE_ENV !== 'PRODUCTION' ? devOnlyConfig : {},
chainWebpack: (config) => {
if (process.env.NODE_ENV !== 'PRODUCTION') { /* modify config! */ }
return config;
}
}
答案 1 :(得分:0)
有点晚了,但是我在自己的Vue.js应用程序中的操作方式是
if(process.env.NODE_ENV === 'development') {
const { SERVER } = require('miragejs'); // instead of import
new Server();
}