Получение этого для работы с глобальной exports-loader
конфигурацией
У меня это работает со следующей настройкой:
src / deps.js // этот файлпросто объявите глобальную file
переменную
const file = 'this is the file';
src / app.js // точку входа в пакет веб-пакета.Это import
deps.js
(даже если deps.js
не имеет оператора export
, спасибо export-loader
):
import file from './deps.js'
console.log(file);
webpack.config.js // файл конфигурации webpack
module.exports = {
entry: __dirname + '/src/app.js',
mode: 'development',
module: {
rules: [
{
test: /deps.js/,
use: 'exports-loader?file',
}
]
}
}
package.json // чтобы мы могли запускать webpack локально для проекта
{
"name": "exports-loader-test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"webpack": "node_modules/webpack/bin/webpack.js"
},
"author": "",
"license": "ISC",
"devDependencies": {
"exports-loader": "^0.7.0",
"webpack": "^4.29.6",
"webpack-cli": "^3.2.3"
}
}
С помощью этой настройки, предполагая webpack.config.js
, package.json
и src/
находятся в корне проекта, выполните:
$ npm run webpack
Чтобы связать сценарии, затем:
$ node dist/main.js
чтобы убедиться, что переменная file
загружается (загрузка в браузере будет делать то же самое).
Получение этого для работы с import
определенной конфигурацией.
( * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *]] * * * * 10.;*:
use: 'exports-loader',
И затем укажите переменные для переноса в предложении export
в каждом операторе import
:
import file from 'exports-loader?file!./deps.js'
Почему не работает синтаксис require.resolve()
?
Я действительно не знаю.Насколько я знаю, предложение test
ожидает регулярное выражение (поэтому на самом деле оно называется test
из-за метода регулярных выражений test
в javascript), и я не привык к другим допустимым синтаксисам.Я вижу, что в вашем фрагменте:
module.exports = {
module: {
rules: [
{
test: require.resolve('globals.js'),
use: exports-loader?file,parse=helpers.parse
}
]
}
}
Значение use
не имеет строковых кавычек.Интересно, если это нарушает конфигурацию, и тогда вы получаете ошибочную ошибку, я не знаю.Я действительно считаю, что вы просто не вставляли кавычки при копировании и вставке в переполнение стека.