Javascript - 找不到导入
Javascript - Import not found
我正在尝试使 text-mask GitHub 存储库与我的 laravel 项目一起工作,有了这个,我想使用某个允许我屏蔽输入的插件场作为价格。我说的 GitHub 存储库是 linked here
该插件名为 createNumberMask
,在其 github 页面上,其文档中说明如下:
import createNumberMask from 'text-mask-addons/dist/createNumberMask'
// First, you need to create the `numberMask` with your desired configurations
const numberMask = createNumberMask({
prefix: '',
suffix: ' $' // This will put the dollar sign at the end, with a space.
})
// ...then pass `numberMask` to the Text Mask component as the mask
现在,当我尝试将此实现到我自己的项目中时,出现错误提示无法找到导入。这是什么原因造成的?
我有一个 blade 文件,其底部有脚本标签。 blade 文件看起来像这样,
@section('content')
<div class="row " style="color: white; width: 100%; margin: 0;" id="showEffect">
<div class="col-md-12 text-center" style="margin-top: 10rem">
<div class="row justify-content-md-center">
<div class="col-md-2">
<input type="text" class="myInput form-control depth-5">
</div>
</div>
</div>
</div>
<script type="module">
import createNumberMask from '/node_modules/text-mask-addons/dist/createNumberMask'
const numberMask = createNumberMask({
prefix: '€',
suffix: '',
allowDecimal: true,
});
var myInput = document.querySelector('myInput');
var maskedInputController = vanillaTextMask.maskInput({
inputElement: document.querySelector('myInput'),
mask: numberMask
});
</script>
@endsection
为什么导入不起作用? js 文件位于 node_modules 文件夹中。
APP.JS
require('./bootstrap');
import TextMask from 'vanilla-text-mask/dist/vanillaTextMask';
import createNumberMask from 'text-mask-addons/dist/createNumberMask';
window.Vue = require('vue');
window.events = new Vue();
window.flash = function (message) {
window.events.$emit('flash', message);
};
Vue.component('flash', require('./components/Flash.vue'));
// Vue.component('product-view', require('./components/Products.vue'));
// Vue.component('wysiwyg', require('./components/Wysiwyg.vue'));
const app = new Vue({
el: '#app',
});
const numberMask = createNumberMask({
prefix: '€',
suffix: '',
allowDecimal: true,
});
var myInput = document.querySelector('myInput');
var maskedInputController = vanillaTextMask.maskInput({
inputElement: document.querySelector('myInput'),
mask: numberMask
});
确保您使用的是 ES6 转译器,即 Babel
代码包含在 blade 模板中,而不是通过 resources/assets/js/app.js
或任何类型的 javascript 编译器(在本例中为 'webpack')
问题是虽然大多数浏览器都能理解 ~ ES6
,但仍然存在对 import/require 的限制。
由于node_modules
在服务器端,前端不能访问它。
所以你 could/need 要做的是以一种或另一种方式将它添加到提到的 javascript 文件中,然后用 npm run dev
或类似的方式编译它。
我正在尝试使 text-mask GitHub 存储库与我的 laravel 项目一起工作,有了这个,我想使用某个允许我屏蔽输入的插件场作为价格。我说的 GitHub 存储库是 linked here
该插件名为 createNumberMask
,在其 github 页面上,其文档中说明如下:
import createNumberMask from 'text-mask-addons/dist/createNumberMask'
// First, you need to create the `numberMask` with your desired configurations
const numberMask = createNumberMask({
prefix: '',
suffix: ' $' // This will put the dollar sign at the end, with a space.
})
// ...then pass `numberMask` to the Text Mask component as the mask
现在,当我尝试将此实现到我自己的项目中时,出现错误提示无法找到导入。这是什么原因造成的?
我有一个 blade 文件,其底部有脚本标签。 blade 文件看起来像这样,
@section('content')
<div class="row " style="color: white; width: 100%; margin: 0;" id="showEffect">
<div class="col-md-12 text-center" style="margin-top: 10rem">
<div class="row justify-content-md-center">
<div class="col-md-2">
<input type="text" class="myInput form-control depth-5">
</div>
</div>
</div>
</div>
<script type="module">
import createNumberMask from '/node_modules/text-mask-addons/dist/createNumberMask'
const numberMask = createNumberMask({
prefix: '€',
suffix: '',
allowDecimal: true,
});
var myInput = document.querySelector('myInput');
var maskedInputController = vanillaTextMask.maskInput({
inputElement: document.querySelector('myInput'),
mask: numberMask
});
</script>
@endsection
为什么导入不起作用? js 文件位于 node_modules 文件夹中。
APP.JS
require('./bootstrap');
import TextMask from 'vanilla-text-mask/dist/vanillaTextMask';
import createNumberMask from 'text-mask-addons/dist/createNumberMask';
window.Vue = require('vue');
window.events = new Vue();
window.flash = function (message) {
window.events.$emit('flash', message);
};
Vue.component('flash', require('./components/Flash.vue'));
// Vue.component('product-view', require('./components/Products.vue'));
// Vue.component('wysiwyg', require('./components/Wysiwyg.vue'));
const app = new Vue({
el: '#app',
});
const numberMask = createNumberMask({
prefix: '€',
suffix: '',
allowDecimal: true,
});
var myInput = document.querySelector('myInput');
var maskedInputController = vanillaTextMask.maskInput({
inputElement: document.querySelector('myInput'),
mask: numberMask
});
确保您使用的是 ES6 转译器,即 Babel
代码包含在 blade 模板中,而不是通过 resources/assets/js/app.js
或任何类型的 javascript 编译器(在本例中为 'webpack')
问题是虽然大多数浏览器都能理解 ~ ES6
,但仍然存在对 import/require 的限制。
由于node_modules
在服务器端,前端不能访问它。
所以你 could/need 要做的是以一种或另一种方式将它添加到提到的 javascript 文件中,然后用 npm run dev
或类似的方式编译它。