我是vue.js和webpack配置的新手。
我可以在app/javascript/packs/somecode.js
中使用Vue实例。
但我无法呈现*.vue
档案。如果我将任何*.vue
文件添加到app/javascript/packs/components/
目录,
它说
"模块构建失败:ReferenceError:[BABEL]此错误的常见原因是存在没有相应预设名称的配置选项对象。 "
但我没有创建任何新选项。
红宝石
ruby 2.4.3p205 (2017-12-14 revision 61247) [x86_64-darwin16]
轨
5.1.0
app.vue
<script>
export default {
data: function () {
return {
message: "Hello Vue!"
}
}
}
</script>
我的Chrome浏览器中的console.log
ERROR in ./node_modules/babel-loader/lib??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./app/javascript/packs/app.vue?vue&type=script&lang=js
Module build failed: ReferenceError: [BABEL] /Users/shiho/dev/appname/app/javascript/packs/app.vue: Unknown option: base.omit. Check out http://babeljs.io/docs/usage/options/ for more information about options.
A common cause of this error is the presence of a configuration options object without the corresponding preset name. Example:
Invalid:
`{ presets: [{option: value}] }`
Valid:
`{ presets: [['presetName', {option: value}]] }`
For more detailed information on preset configuration, please see http://babeljs.io/docs/plugins/#pluginpresets-options.
at Logger.error (/Users/shiho/dev/appname/node_modules/babel-core/lib/transformation/file/logger.js:41:11)
at OptionManager.mergeOptions (/Users/shiho/dev/appname/node_modules/babel-core/lib/transformation/file/options/option-manager.js:226:20)
at OptionManager.init (/Users/shiho/dev/appname/node_modules/babel-core/lib/transformation/file/options/option-manager.js:368:12)
at File.initOptions (/Users/shiho/dev/appname/node_modules/babel-core/lib/transformation/file/index.js:212:65)
at new File (/Users/shiho/dev/appname/node_modules/babel-core/lib/transformation/file/index.js:135:24)
at Pipeline.transform (/Users/shiho/dev/appname/node_modules/babel-core/lib/transformation/pipeline.js:46:16)
at transpile (/Users/shiho/dev/appname/node_modules/babel-loader/lib/index.js:50:20)
at Object.module.exports (/Users/shiho/dev/appname/node_modules/babel-loader/lib/index.js:173:20)
@ ./app/javascript/packs/app.vue?vue&type=script&lang=js 1:0-178 1:199-374
@ ./app/javascript/packs/app.vue
.babelrc
"presets": [
["env", {
"modules": false,
"targets": {
"browsers": "> 1%",
"uglify": true
},
"useBuiltIns": true
}]
],
"plugins": [
"syntax-dynamic-import",
"transform-object-rest-spread",
["transform-class-properties", { "spec": true }]
]
}
的package.json
{
"name": "appname",
"version": "1.0.0",
"private": true,
"dependencies": {
"@rails/webpacker": "^3.4.3",
"babel-loader": "^7.1.4",
"coffeescript": "1.12.7",
"intro.js": "^2.8.0-alpha.1",
"rails-ujs": "^5.2.0",
"vue": "^2.5.16",
"vue-infinite-loading": "^2.3.1",
"vue-loader": "^15.0.0-rc.2",
"vue-template-compiler": "^2.5.16",
"webpack-cli": "^2.0.13"
},
"devDependencies": {
"webpack": "^3.11.0",
"webpack-dev-server": "^2.11.1"
},
"scripts": {}
}
配置/ webpacker.yml
default: &default
source_path: app/javascript
source_entry_path: packs
public_output_path: packs
cache_path: tmp/cache/webpacker
# Additional paths webpack should lookup modules
# ['app/assets', 'engine/foo/app/assets']
resolved_paths: []
# Reload manifest.json on all requests so we reload latest compiled packs
cache_manifest: false
extensions:
- .vue
- .js
- .sass
- .scss
- .css
- .module.sass
- .module.scss
- .module.css
- .png
- .svg
- .gif
- .jpeg
- .jpg
development:
<<: *default
compile: true
# Reference: https://webpack.js.org/configuration/dev-server/
dev_server:
https: false
host: localhost
port: 3035
public: localhost:3035
hmr: false
# Inline should be set to true if using HMR
inline: true
overlay: true
compress: true
disable_host_check: true
use_local_ip: false
quiet: false
headers:
'Access-Control-Allow-Origin': '*'
watch_options:
ignored: /node_modules/
test:
<<: *default
compile: true
# Compile test packs to a separate directory
public_output_path: packs-test
production:
<<: *default
# Production depends on precompilation of packs prior to booting for performance.
compile: false
# Cache manifest.json for performance
cache_manifest: true
staging:
<<: *default
# Production depends on precompilation of packs prior to booting for performance.
compile: false
# Cache manifest.json for performance
cache_manifest: true
配置/的WebPack / development.js
process.env.NODE_ENV = process.env.NODE_ENV || 'development'
const environment = require('./environment')
module.exports = environment.toWebpackConfig()